Vous êtes sur la page 1sur 9

UPIICSA Unidad Profesional Interdisciplinaria de Ciencias Sociales y Administrativas __________________________________________________ ESTRUCTURA DE DATOS

LISTAS LIGADAS SIMPLE


UNA LISTA ES UNA COLECCIN DE ELEMENTOS LLAMADOS NODOS. EL ORDEN ENTRE LOS NODOS SE ESTABLECE POR MEDIO DE PUNTEROS, ES DECIR, DIRECCIONES O REFERENCIAS A OTROS NODOS.

INFORMACION

NEXT

EL CAMPO INFORMACION QUE SERA DEL TIPO DE DATOS QUE SE QUIERA ALMACENAR EN LA LISTA Y EL CAMPO NEXT, DE TIPO PUNTERO, QUE SE UTILIZA PARA ESTABLECER LA LIGA O EL ENLACE CON OTRO NODO DE LA LISTA. SI EL NODO FUERA EL ULTIMO DE LA LISTA ESTE CAMPO TENDRA COMO VALOR NULO. AL EMPLEARSE EL CAMPO NEXT PARA RELACIONAR DOS NODOS NO SERA NECESARIO ALMACENAR FISICAMENTE A LOS NODOS EN ESPACIOS CONTIGUOS.

OPERACIONES CON LISTAS


CREACION DE LA LISTA RECORRIDO DE LA LISTA INSERCION DE UN ELEMENTO BORRADO DE UN ELEMENTO BUSQUEDA DE UN ELEMENTO

M. en C. Lilia Gonzlez Arroyo

UPIICSA Unidad Profesional Interdisciplinaria de Ciencias Sociales y Administrativas __________________________________________________ ESTRUCTURA DE DATOS

Nodo
Es un elemento de una lista encadenada, es la unidad bsica dentro de las Estructuras de Datos. Los nodos contienen dos campos, un campo de informacin y uno de direccin del elemento siguiente. El campo de informacin contiene al elemento actual en la lista. El campo de direccin contiene la direccin del nodo siguiente en la lista. Esta direccin la cual es utilizada para dar acceso a un nodo en particular es denominado puntero.

INFORMACION

NEXT

EL CAMPO INFORMACION QUE SERA DEL TIPO DE DATOS QUE SE QUIERA ALMACENAR EN LA LISTA Y EL CAMPO LIGA, DE TIPO PUNTERO, QUE SE UTILIZA PARA ESTABLECER LA LIGA O EL ENLACE CON OTRO NODO DE LA LISTA. SI EL NODO FUERA EL ULTIMO DE LA LISTA ESTE CAMPO TENDRA COMO VALOR NULO(VACIO). AL EMPLEARSE EL CAMPO LIGA PARA RELACIONAR DOS NODOS NO SERA NECESARIO ALMACENAR FISICAMENTE A LOS NODOS EN ESPACIOS CONTIGUOS.
Apuntador

Las estructuras dinmicas son implementadas mediante un tipo de dato con el nombre de apuntador (puntero). Una variable de tipo puntero almacena la direccin o posicin de otra variable y la principal ventaja de este tipo de datos es que se pueden adquirir posiciones de memoria a medida que se necesita y liberarlas cuando ya no se utilicen; de esta manera se pueden crear estructuras dinmicas que se expandan o se contraigan segn se les agreguen o eliminen elementos. La representacin grafica de un puntero es una flecha que sale del puntero y llega a la variable dinmica apuntada. TENEMOS DOS VARIABLES P Y Q DE TIPO APUNTADOR, ESTAS APUNTAN A DIFERENTES OBJETOS:


M. en C. Lilia Gonzlez Arroyo 2

UPIICSA Unidad Profesional Interdisciplinaria de Ciencias Sociales y Administrativas __________________________________________________ ESTRUCTURA DE DATOS

LA ASIGNACION P Q (P = &Q) TIENE EL EFECTO DE ASIGNAR LA DIRECCION DEL APUNTADOR Q AL APUNTADOR P. DESPUES DE ESTA ASIGNACION, LA SITUACION ES LA SIGUIENTE:

AMBOS APUNTADORES APUNTAN AL AEROPLANO Y EL TELEFONO SE HA PERDIDO ( A MENOS QUE EXISTIERA OTRO APUNTADOR A EL, DOS APUNTADORES PUEDEN APUNTAR A LA MISMA COSA).

LA PROPOSICION *P =*Q TIENE EFECTO BASTANTE DIFERENTE. ESTAMOS COPIANDO EL VALOR DEL OBJETO Q AL OBJETO P Y EL RESULTADO SE MUESTRA EN LA FIGURA ANTERIOR. LOS APUNTADORES ESTAN SIN CAMBIAR PERO EL VALOR DE P HA SIDO ALTERADO

M. en C. Lilia Gonzlez Arroyo

UPIICSA Unidad Profesional Interdisciplinaria de Ciencias Sociales y Administrativas __________________________________________________ ESTRUCTURA DE DATOS

OPERACIONES CON LISTAS LIGADAS SIMPLES CREACION DE LA LISTA LIGADA SIMPLE


P Info
5

next

Info
3

next

Info
8

next Nul o

Info
5

next nil

ALGORITMO DE CREACION DE UNA LISTA P Y Q SON APUNTADORES. P APUNTA AL INICIO DE LA LISTA 1. CREA (P) CREA EL PRIMER NODO DE LA LISTA 2. LEER P^.INFO 3. HACER P^.NEXT NIL 4. REPETIR CREA(Q) LEER Q^.INFO HACER Q^.NEXT P Y PQ 5. HASTA (QUE NO HAYA INFORMACION)

RECORRER UNA LISTA LIGADA SIMPLE


ESTE ALGORITMO RECORRE UNA LISTA CUYO PRIMER NODO ESTA APUNTADO POR P. 1. HACER QP 2. REPETIR MIENTRAS QNIL ESCRIBIR Q^.INFO HACER QQ^.NEXT (APUNTA AL SIG. NODO DE LA LISTA) 3. FIN DEL CICLO DEL PASO 2

M. en C. Lilia Gonzlez Arroyo

UPIICSA Unidad Profesional Interdisciplinaria de Ciencias Sociales y Administrativas __________________________________________________ ESTRUCTURA DE DATOS

INSERTAINICIO(P,DATO)
ESTE ALGORITMO INSERTA UN NODO AL INICIO DE LA LISTA. P ES EL APUNTADOR AL PRIMER NODO DE LA LISTA Y DATO ES LA INFORMACION QUE SE ALMACENARA EN EL NUEVO NODO. 1. CREA(Q) 2. HACER Q^.INFODATO Q^.NEXTP Y PQ

INSERTAFIN(P,DATO)
ESTE ALGORITMO INSERTA UN NODO AL FINAL DE LA LISTA. P ES EL APUNTADOR AL PRIMER NODO DE LA LISTA Y DATO ES LA INFORMACION QUE SE ALMACENARA EN EL NUEVO NODO. Q Y T SON APUNTADORES. 1. HACER TP 2. REPETIR MIENTRAS T^.NEXTNIL RECORRE LA LISTA HASTA LLEGAR AL ULTIMO ELEMENTO HACER TT^.NEXT 3. FIN DEL CICLO DEL PASO 2 4. CREA(Q) 5. HACER Q^.INFODATO, Q^.NEXTNIL Y T^.NEXTQ

M. en C. Lilia Gonzlez Arroyo

UPIICSA Unidad Profesional Interdisciplinaria de Ciencias Sociales y Administrativas __________________________________________________ ESTRUCTURA DE DATOS

INSERTANTES(P,DATO,REF)
ESTE ALGORITMO INSERTA UN NODO ANTES DE OTRO DADO COMO REFERENCIA, REF. P ES EL APUNTADOR AL PRIMER NODO DE LA LISTA Y DATO ES LA INF. QUE SE ALMACENARA EN EL NUEVO NODO. Q, X y T SON PUNTEROS. BAND ES UNA VARIABLE DE TIPO BOOLEANO 1 Hacer QP y BAND VERDADERO 2 REPETIR MIENTRAS(Q^.INFO REF) Y (BAND = VERDADERO) 2.1 Si Q^.NEXT NIL entonces hacer T Q Q Q^.NEXT Sino Hacer BAND FALSO 2.2 Fin del paso 2.1 3 Fin del paso 2 4 SI BAND = VERDADERO entonces CREA(X) Hacer X^. INFO DATO 4.1 SI P = Q {primer nodo} entonces Hacer X^.NEXT P y P X sino hacer T^.NEXT X y X^.NEXT Q 4.2 Fin paso 4.1 Fin paso 4 P T Q

REF

Nulo

DATO X

M. en C. Lilia Gonzlez Arroyo

UPIICSA Unidad Profesional Interdisciplinaria de Ciencias Sociales y Administrativas __________________________________________________ ESTRUCTURA DE DATOS

INSERTADESPUES (P,DATO,REF)
ESTE ALGORITMO INSERTA UN NODO DESPUES DE OTRO DADO COMO REFERENCIA, REF. P ES EL APUNTADOR AL PRIMER NODO DE LA LISTA Y DATO ES LA INF. QUE SE ALMACENARA EN EL NUEVO NODO. Q y T SON PUNTEROS. BAND ES UNA VARIABLE DE TIPO BOOLEANO 1 Hacer Q P y BAND VERDADERO 2 REPETIR MIENTRAS(Q^.INFO REF) Y (BAND = VERDADERO) 2.1 Si Q^.NEXT NIL entonces hacer Q Q^.NEXT sino hacer BAND FALSO 2.2 Fin del paso 2.1 3 Fin del paso 2 4 SI BAND = VERDADERO entonces CREA(T) hacer T^. INFO DATO hacer T^. NEXT Q^.NEXT hacer Q^. NEXT T 5 Fin paso 4

REF

Nulo

DATO T

M. en C. Lilia Gonzlez Arroyo

UPIICSA Unidad Profesional Interdisciplinaria de Ciencias Sociales y Administrativas __________________________________________________ ESTRUCTURA DE DATOS

BUSCADESORDENADA(P,X)
ESTE ALGORITMO BUSCA EL ELEMENTO CON INFO X EN UNA LISTA DESORDENADA. P ES EL APUNTADOR AL PRIMER NODO DE LA LISTA 1. HACER QP 2. REPETIR MIENTRAS (QNIL) Y (Q^.INFO X) HACER QQ^.NEXT 3. FIN DEL CICLO PASO 2 4. SI (Q=NIL) ENTONCES ESCRIBIR EL ELEMENTO NO FUE ENCONTRADO SINO ESCRIBIR EL ELEMENTO SE ENCUENTRA EN LA LISTA 5. FIN CONDICIONAL DEL PASO 4

M. en C. Lilia Gonzlez Arroyo

UPIICSA Unidad Profesional Interdisciplinaria de Ciencias Sociales y Administrativas __________________________________________________ ESTRUCTURA DE DATOS

ELIMINA(P,X)
ESTA ALGORITMO ELIMINA UN NODO CON INFORMACION X DE LA LISTA. P ES EL APUNTADOR AL PRIMER NODO DE LA LISTA . 1. HACER QP Y BANDVERDADERO 2. REPETIR MIENTRAS (Q^.INFOX) Y (BAND=VERDADERO) SI Q^.NEXT NIL ENTONCES HACER TQ Y QQ^.NEXT SINO HACER BANDFALSO FINSI 3. FIN DEL CICLO DEL PASO 2 4. SI BAND=FALSO ENTONCES ESCRIBIR EL ELEMENTO NO FUE ENCONTRADO SINO SI P=Q VERIFICA SI EL ELEMENTO A ELIMINAR ES EL PRIMERO ENTONCES HACER PQ^.NEXT SINO HACER T^.NEXTQ^.NEXT FINSI QUITA(Q) 5. FIN DEL CONDICIONAL DEL PASO 4

BIBLIOGRAFIA: ESTRUCTURA DE DATOS, CAIRO GUARDATI, MC GRAW HILL PAG.140

Realiza la esquematizacin del algoritmo para insertar un elemento despus de otro en listas ligadas simples.

M. en C. Lilia Gonzlez Arroyo

Vous aimerez peut-être aussi