unidad iii listas enlazadas

Download Unidad III Listas Enlazadas

Post on 24-Jul-2015

697 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

UNIDAD V Listas enlazadas.

CONTENIDO Objetivos especficos. Bibliografa recomendada. Introduccin. Listas enlazadas. Concepto. Estructura de un nodo. Clasificacin de las listas. Ventajas.

CONTENIDO Operaciones sobre las listas. Operaciones sobre las listas simplemente enlazadas lineales. Operaciones sobre las listas simplemente enlazadas circulares. Operaciones sobre las listas doblemente enlazadas lineales.

CONTENIDO Operaciones sobre las listas doblemente enlazadas circulares. Aplicaciones.

OBJETIVOS ESPECIFICOS

BIBLIOGRAFIA RECOMENDADA Cair Osvaldo & Guardati Silvia. Estructuras de datos. 2001. Editorial Mc Graw Hill. Pp 139-167. Aguilar Joyanes. Programacin en C++. 2000. Editorial Mc Graw Hill. Pp 369-380. Zimerman Heilleman. Estructuras de datos. . Editorial Mc Graw Hill. Pp 83-104.

BIBLIOGRAFIA RECOMENDADA Aguilar Joyanes & Zahonero Ignacio. Programacin en C. Libro de Problemas. 2002. Editorial Mc Graw Hill. Pp 257-292. Aguilar Joyanes & Zahonero Ignacio. Estructuras de datos. Libro de Problemas. 1999. Editorial Mc Graw Hill. 87-127.

BIBLIOGRAFIA RECOMENDADA Villalobo Jorge. Diseo y manejo de estructuras de datos en C. 1996. Editorial Mc Graw Hill. Pp 85119. Susan Nell. Estructuras de datos. 1994. Editorial Mc Graw Hill. 229-355

INTRODUCCIN Las estructuras de datos presentadas hasta el momento (estructuras, pilas y colas) se denominan estticas. Reciben este este nombre debido a que durante la compilacin se les asigna espacio de memoria, y ste permanece inalterable a lo largo de la ejecucin del programa, es decir, las variables no pueden crearse ni destruirse durante la ejecucin del programa.

INTRODUCCIN En esta unidad se introduce un nuevo concepto, el de estructuras dinmicas de datos. Este tipo de estructura es generado a partir de un tipo de dato conocido con el nombre de puntero. La principal ventaja de manejar este tipo de dato es que se puede adquirir posiciones de memoria a medida que se necesitan, y liberarlas cuando ya no se requieren. De esta manera es posible crear estructuras dinmicas que se expandan o contraigan, segn se les agreguen o eliminen elementos.

LISTAS ENLAZADAS Es una coleccin generalmente nodos. de elementos llamados

ESTRUCTURA DE UN NODO Informacin. Siguiente.

ESTRUCTURA DE UN NODO La fig 5.1 representa un ejemplo de una lista que almacena apellidos.

Garca P

Prez

Lpez

Santos NULL

CLASIFICACIN DE LAS LISTAS Listas simplemente enlazadas. Lineales. Circulares. Listas doblemente enlazadas. Lineales. Circulares.

VENTAJAS Uso eficiente de recurso memoria. No requiere reordenamiento o desplazamiento de dato.

OPERACIONES SOBRE LAS LISTAS Insercin. Eliminacin. Bsqueda. Recorrido e impresin.

LISTAS SIMPLEMENTE ENLAZADAS LINEALES

INSERCIN DE UN ELEMENTO Al inicio de la lista. Al final de la lista. Antes/despus que otro.

INSERTAR AL INICIO DE UNA LISTAInsertaInicio(P,DATO) Declarar Q como puntero a nodo 1. Crear(Q) 2. Hacer Q^.Info=DATO 3. Q^.Sig=P 4. P=Q 5. Fin del algoritmo InsertaInicio

INSERTAR AL FINAL DE UNA LISTAInsertaFinal(P,DATO) Declarar T de tipo puntero a nodo 1.Crear(Q) 2.Q^.Info=DATO 3.Q^.Sig=NULL 4.Si (P=NULL) entonces

P=Q En caso contrario T=P 4.1 Repetir mientras T^.SigNULL

INSERTAR UN NODO ANTES QUE OTROINSERTANTES(P,DATO,REF) Declarar Q, X y T punteros a nodo, BAND es una variable de ti booleano 1. Hacer Q=P y BAND =Verdadero 2. Repetir mientras Q^.InfoREF Y BAND=Verdadero 2.1 Si Q^.Sig NULL entonces Hacer T=Q y Q = Q^.Sig Si no Hacer BAND=Falso 2.2 Fin del condicional 2.1

INSERTAR UN NODO DESPUS QUE OTROINSERTADESPUES(P,DATO,REF) Declarar Q, X punteros a nodo. BAND es una variable de tipo booleano 1. Hacer Q=P y BAND =Verdadero 2. Repetir mientras Q^.InfoREF Y Band=Verdadero 2.1 Si Q^.Sig NULL entonces Hacer Q=Q ^.Sig Si no Hacer BAND=Falso 2.2 Fin del condicional 2.1 3. Fin del ciclo del paso 2

ELIMINACIN DE UN ELEMENTO Al inicio de la lista. Al final de la lista. Antes/Despus de un nodo dado como referencia. Nodo con informacin.

ELIMINAR EL PRIMER NODO DE UNA LISTAELIMINARPRIMERO(P) Declarar Q punteros a nodo 1. Hacer Q=P {Verifica si la lista tiene slo un nodo} 2. Si Q^.SigNULL Entonces Hacer P=Q^.Sig {Redefine el puntero al inicio} Si no Hacer P=NULL 3. Fin del condicional del paso 2

ELIMINAR EL LTIMO NODO DE LA LISTAELIMINALTIMO(P) Declarar Q y T punteros a nodo {Verifica si la lista tiene slo un elemento } 1. Si (P^.Sig=NULL) entonces Quita(P), P=NULL Si no Q =P 1.1. Repetir mientras(Q^.SigNULL) T=Q

ELIMINAR UN NODO CON INFORMACINELIMINAX(P,X) {Este algoritmo elimina un nodo con informacin X de una lista simplemente enlazada lineal. P es el apuntador al inicio de la lista} {Q y T son variables de tipo puntero. Band es una variable de tipo booleano} 1. Hacer Q=P y Band =Verdadero 2. Repetir mientras Q^.InfoX y Band=verdadero 2.1. Si Q^.SigNULL entonces Hacer T=Q Q =Q^.Sig Si no

ELIMINAR EL NODO ANTERIOR AL NODO CON INFORMACIN XELIMINANTESX (P,X) Declarar Q, T y R punteros a nodo. Band es una variable de tipo booleano} 1. Si P^.Info=X entonces Escribir No hay nodo que preceda a X Si no Hacer Q=P , T =P y Band =Verdadero 1.1. Repetir mientras Q^.InfoX y Band=Verdadero 1.1.1. Si Q^.SigNULL entonces Hacer R=T, T =Q y Q =Q^.Sig

BSQUEDA En una lista ordenada. En una lista desordenada.

BUSQUEDA DE UN ELEMENTO EN UNA LISTA DESORDENADABUSCADESORDENADA(P,X) Declarar Q puntero a nodo 1. Hacer Q=P 2. Repetir mientras QNIL y Q^.InfoX Hacer Q =Q^.Sig 3. Fin del ciclo del paso 2 4. Si Q=NIL entonces Escribir El elemento no fue encontrado Si no

BUSQUEDA DE UN ELEMENTO EN UNA LISTA ORDENADABUSCAORDENADA(P,X) {Este algoritmo busca el nodo con informacin X en una lista simplemente enlazada ordenada. P es el apuntador al inicio de la lista} {Q es una variable de tipo puntero} 1. Hacer Q=P 2. Repetir mientras QNIL y Q^.Info

Recommended

View more >