Download - 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