Lista doblemente enlazada
Click here to load reader
-
Upload
piero-divasto -
Category
Education
-
view
1.214 -
download
1
Transcript of Lista doblemente enlazada
Listas Doblemente Enlazadas
clave
struct moldenodo { int clave; struct moldenodo *izq;struct moldenodo *der;
};
typedef struct moldenodo nodo;typedef nodo *pnodo;
izq der
pnodo CreaNodo(int dato){
pnodo pn = NULL;pn = (pnodo) malloc(sizeof(nodo));if ( pn != NULL) {
pn->clave=dato; pn->izq=NULL; pn->der=NULL;
} return(pn);
}
dato
izq der
NULL NULL
pnodo InsertarAlInicio(pnodo n){
if(lista==NULL) lista=n;
else if (n != NULL) { n->der=lista; n->izq=NULL; lista = n;
} return (n);
}
lista
dato
NULL NULL
n
pnodo InsertarAlInicio(pnodo n){
if(lista==NULL) lista=n;
else if (n != NULL) { n->der=lista; n->izq=NULL; lista = n;
} return (n);
}
lista
dato
NULL NULL
n
pnodo InsertarAlInicio(pnodo n){
if(lista==NULL) lista=n;
else if (n != NULL) { n->der=lista; n->izq=NULL; lista = n;
} return (n);
}
dato1 dato2 dato3
dato4
lista
n
pnodo InsertarAlInicio(pnodo n){
if(lista==NULL) lista=n;
else if (n != NULL) { n->der=lista; lista->izq=n;n->izq=NULL; lista = n;
} return (n);
}
dato1 dato2 dato3dato4
listan
pnodo InsertarAlInicio(pnodo n){
if(lista==NULL) lista=n;
else if (n != NULL) { n->der=lista; lista->izq=n;n->izq=NULL; lista = n;
} return (n);
}
dato1 dato2 dato3dato4
lista n
Void DescartarPrimero(void){
pnodo t = lista;if (lista==NULL) {
printf(“La lista esta vacía”); }else{
lista=lista->der;lista->izq=NULL; free(t); printf(“Se borro el primer elemento de la lista”);
}}
lista
Void DescartarPrimero(void){
pnodo t = lista;if (lista==NULL) {
printf(“La lista esta vacía”); }else{
lista=lista->der;lista->izq=NULL; free(t); printf(“Se borro el primer elemento de la lista”);
}}
dato1 dato2 dato3dato4
lista t
Void DescartarPrimero(void){
pnodo t = lista;if (lista==NULL) {
printf(“La lista esta vacía”); }else{
lista=lista->der;lista->izq=NULL; free(t); printf(“Se borro el primer elemento de la lista”);
}}
dato1 dato2 dato3dato4
listat
Void DescartarPrimero(void){
pnodo t = lista;if (lista==NULL) {
printf(“La lista esta vacía”); }else{
lista=lista->der;lista->izq=NULL; free(t); printf(“Se borro el primer elemento de la lista”);
}}
dato1 dato2 dato3
lista
Crear la función de buscar un nodo en especial y eliminarlo.
Crear la función de insertar un nodo en una lista.