Listas Enlazadas

43
LISTAS ENLAZADAS ( Estructura de Datos. Cairo. McGraw Hill. Pag.139 – 155)

description

Programación: listas enlazadas

Transcript of Listas Enlazadas

LISTAS ENLAZADAS

LISTAS ENLAZADAS( Estructura de Datos. Cairo. McGraw Hill. Pag.139 155)1LISTAS ENLAZADAS SIMPLESUna lista es una coleccion de elementos llamados NODOS.AvalosUn NODO est constituido mnimo por un campo de informacin y la liga.InformacinLigaAunque cabe aclarar que puede tener varios campos en la informacion.Para el manejo de la lista se requieren de PUNTEROS.P AvalosCadenaLopezNIL2OPERACIONES EN UNA LISTA ENLAZADAEn una lista enlazada se pueden realizar las operaciones de:

CrearRecorrer (Buscar Imprimir)InsertarBorrarAl inicioAl finalCon x informacionAntes de la referenciaDespues de la referencia3CREAR AL INICIO Crea PLeer P ^InformacionHacer P ^Liga = NILRepetir- Crea Q- Leer Q ^Informacion- Q ^Liga=P- P = QHasta que ya no desee agregar otro

P4CREAR AL INICIO Crea PLeer P ^InformacionHacer P ^Liga = NILRepetir- Crea Q- Leer Q ^Informacion- Q ^Liga=P- P = QHasta que ya no desee agregar otro

PSusana5CREAR AL INICIO Crea PLeer P ^InformacionHacer P ^Liga = NILRepetir- Crea Q- Leer Q ^Informacion- Q ^Liga=P- P = QHasta que ya no desee agregar otro

PSusanaNIL6CREAR AL INICIO Crea PLeer P ^InformacionHacer P ^Liga = NILRepetir- Crea Q- Leer Q ^Informacion- Q ^Liga=P- P = QHasta que ya no desee agregar otro

PSusanaNILQPedro7INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

P X YAvalosCadenaLopezNILSW = V8INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

P X YAvalosCadenaLopezNILSW = V9INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

P X YAvalosCadenaLopezNILSW = VAcuaQ10INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

P X YAvalosCadenaLopezNILSW = VAcuaQ11INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

P X YAvalosCadenaLopezNILSW = VAcuaP = Q12INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

P X YAvalosCadenaLopezNILSW = V13INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

P X YAvalosCadenaLopezNILSW = VDavilaQ14INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

P X YAvalosCadenaLopezNILSW = VDavilaQ15INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

PAvalosCadenaLopezNILSW = VDavilaQXY16INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

P X YAvalosCadenaLopezNILSW = V17INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

P X YAvalosCadenaLopezNILSW = VSilvaQ18INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

P X YAvalosCadenaLopezNILSW = VSilvaQ19INSERTAR UN NODO CON x INF.Asignar X y Y = PInicializar SW = VCrear QLeer Q ^ InformacionRepetir mientas (Y ^Informacion < Q ^Informacion) y (SW=V)A) Si X ^Liga NIL entoncesa. X = Yb. Y = Y ^LigaSinoc. SW = F6. Si X = Y entoncesA) Q ^Liga = PB) P = QSinoC) Si SW = F entoncesa. Q ^Liga = NILb. Y ^Liga = Q Sino* Q ^Liga = X ^Liga* X ^Liga = Q7. Fin

PAvalosCadenaLopezSW = FSilvaQXYNIL20ELIMINAR21ELIMINAR EL PRIMEROHacer Q = PSi Q^ Liga NIL entonces- Hacer P = Q^Ligasino- Hacer P = NIL3. Quita ^QPNILAvalosCadenaLopezSilva= Q22ELIMINAR EL PRIMEROHacer Q = PSi Q^ Liga NIL entonces- Hacer P = Q^Ligasino- Hacer P = NIL3. Quita ^QPNILAvalosCadenaLopezSilva= QP23ELIMINAR EL PRIMEROHacer Q = PSi Q^ Liga NIL entonces- Hacer P = Q^Ligasino- Hacer P = NIL3. Quita ^QPNILAvalosCadenaLopezSilvaQ24ELIMINAR EL PRIMEROHacer Q = PSi Q^ Liga NIL entonces- Hacer P = Q^Ligasino- Hacer P = NIL3. Quita ^QP = QNILSilva25ELIMINAR EL PRIMEROHacer Q = PSi Q^ Liga NIL entonces- Hacer P = Q^Ligasino- Hacer P = NIL3. Quita ^QP = NILNILSilva26ELIMINAR EL PRIMEROHacer Q = PSi Q^ Liga = NIL entonces- Hacer P = Q^Ligasino- Hacer P = NIL3. Quita ^QP = NILNILSilva27ELIMINAR EL ULTIMO Si P ^ Liga = NIL entonces- Quita ^P- Hacer P = NILSino- Hacer Q = P- Repetir mientras (Q ^ Liga NIL)* Hacer T = Q* Q = Q ^ Liga- Fin de repetir- Hacer T ^Liga = NIL- Quita Q

PAvalosNILP = NIL28ELIMINAR EL ULTIMOSi P ^ Liga = NIL entonces- Quita ^P- Hacer P = NILSino- Hacer Q = P- Repetir mientras (Q ^ Liga NIL)* Hacer T = Q* Q = Q ^ Liga- Fin de repetir- Hacer T ^Liga = NIL- Quita Q

Q = PNILAvalosCadenaLopezSilva29ELIMINAR EL ULTIMOSi P ^ Liga = NIL entonces- Quita ^P- Hacer P = NILSino- Hacer Q = P- Repetir mientras (Q ^ Liga NIL)* Hacer T = Q* Q = Q ^ Liga- Fin de repetir- Hacer T ^Liga = NIL- Quita Q

Q = PNILAvalosCadenaLopezSilva30ELIMINAR EL ULTIMOSi P ^ Liga = NIL entonces- Quita ^P- Hacer P = NILSino- Hacer Q = P- Repetir mientras (Q ^ Liga NIL)* Hacer T = Q* Q = Q ^ Liga- Fin de repetir- Hacer T ^Liga = NIL- Quita Q

PNILAvalosCadenaLopezSilvaTQNIL31ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

Q = PNILAvalosCadenaLopezSilvaBAND=VX=LunaCaso 132ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

Q = PNILAvalosCadenaLopezSilvaBAND=VX=Luna33ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

PNILAvalosCadenaLopezSilvaBAND=FX=LunaQ34ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

PNILAvalosCadenaLopezSilvaBAND=FX=LunaQ35ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

Q = PNILAvalosCadenaLopezSilvaBAND=VX=AvalosCaso 236ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

Q = PNILAvalosCadenaLopezSilvaBAND=VX=Avalos37ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

QNILAvalosCadenaLopezSilvaBAND=VX=AvalosP38ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

QNILAvalosCadenaLopezSilvaBAND=VX=AvalosP39ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

Q = PNILAvalosCadenaLopezSilvaBAND=VX=CadenaCaso 340ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

Q = PNILAvalosCadenaLopezSilvaBAND=VX=Cadena41ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

P TNILAvalosCadenaLopezSilvaBAND=VX=CadenaQ42ELIMINAR CON x INF. Hacer Q = P y BAND = V y Preguntar XRepetir mientras (Q ^Informacion X) y (BAND = V)- Si Q ^Liga NIL entoncesHacer T = QQ = Q ^LigaSinoBAND = F3. Si BAND = F entonces- Escribir El elemento no fue encontradosino- Si P=Q entonces* P = Q^Liga sino* T^Liga = Q^Liga- Quita Q4. Fin

P TNILAvalosCadenaLopezSilvaBAND=VX=CadenaQ43