practica de estructuras de datos

4
Instituto Politécnico Nacional Escuela Superior de Computo Profesor Saúl Torres de la O Alumno: Castro Maya Jesús Christopher LISTAS DOBLEMENTE ENLASADAS

Upload: cristopher-castro

Post on 07-Nov-2015

215 views

Category:

Documents


1 download

TRANSCRIPT

listas doblemente enlasadas

Listas doblemente enlazadas

Una lista doblemente ligada es una coleccin de nodos, en la cual cada nodo tiene dos punteros, uno de ellos apuntando a su predecesor (LIGAIZQ) y otro a su sucesor (LIGADER). Por medio de estos punteros se podr avanzar o retroceder a travs de la lista, segn se tomen decisiones de uno u otro puntero.

Operaciones con listas doblemente ligadas Recorrido de la lista Insercin de un elemento Borrado de un elementoRecorrido de la lista

Al tener doble liga, las listas pueden recorrerse tanto del inicio al final (toman las ligas derechas), como en sentido inverso (tomando las ligas del final). Cualquiera que sea el sentido del recorrido, el algoritmo es similar al que presenta para listas simplemente ligadas. Se deja al lector su diseo.Insercin de un elementoLa insercin de un elemento consiste en agregar un nuevo nodo a la lista y establecer los punteros correspondientes. No se considerar el caso de lista vaca. La insercin puede llevarse a cabo: Al inicio de la lista. Al final de la lista. Antes/despus de un nodo dado como referencia.La operacin de borrado de un nodo en una lista doblemente ligada, al igual que en el caso de las listas simplemente ligadas, consiste en eliminar un elemento de la lista y restablecer las ligas que correspondan. Pueden presentarse cuatro casos: Eliminar el primer nodo Eliminar el ultimo nodo Eliminar el nodo con informacin X Eliminar el nodo anterior/posterior al nodo con informacin X Comenc creando el mtodo iniciarLista(String valor)el cual inicia la lista creando un primer nodo cola cadena introducida en valor Luego insertarAlPrincipio(String valor)-> inserta un valor al principio de la lista translado los dems nodos a una posicin posterior se vale de un nodo q al cual se le enva la nueva informacin del primer nodo y dejando el primer enlace anterior null para poder insertar mas informacin por el lado izquierdo El mtodo insertarAlFinal(String valor) inserta un valor al final de la lista valindose de un nodo q al que se le enva la nueva informacin y dejando nulo el siguiente enlace para poder poner ms nodos insertarAntesDe(String valor, String referencia) inserta la cadena introducida en valor antes del nodo de referencia insertarDespuesDe(String valor, String referencia)inserta la cadena introducida en valor despus del nodo de referencia eliminarAlPrincipio() elimina el primer elemento de la lista eliminarAlFinal() elmina el ltimo elemento de la lista eliminarNodo(String cual) elimina el nodo indicado por cualAqu una demostracin del funcionamiento del programa