Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción:
Para la inserción y la eliminación, una única función bastará si está bien concebida de
acuerdo a lo que se necesite. Debo recordar que este artículo es puramente didáctico. Por lo
tanto, he escrito una función para cada operación de inserción y eliminación.
Ejemplo;
void inicializacion (Lista *lista);
Esta operación debe ser hecha antes de otra operación sobre la lista. Esta comienza el
puntero inicio y el puntero fin con el puntero NULL y el tamaño con el valor 0
La función:
lista->inicio = NULL;
lista->fin = NULL;
tamaño = 0;
Estos son algunos de los pasos para la insercion que debemos seguir:
Ejemplo:
Ejemplo de la función:
Element *nuevo_elemento;
return -1;
return -1;
nuevo_elemento->siguiente = NULL;
lista->inicio = nuevo_elemento;
lista->fin = nuevo_elemento;
lista->tamaño++;
return 0;
}
Una lista doblemente enlazada puede estar vacía o consistir de una secuencia de nodos,
donde cada nodo contiene un dato y sabe dónde están tanto el siguiente como el
Definiremos un tipo estructurado nodod para representar un nodo doble y un tipo listad
para representar una lista doblemente enlazada. El tipo nodod consiste de un dato y dos
apuntadores.
} nodod ;
Esta función pide la memoria para un nodo doble y llena sus campos. También revisa si
if (t == NULL ) {
exit (0) ;
t- >a = x;
t- >sig = p;
t- >ant = q;
return t;
Borrar elementos.
struct nodo {
int dato;
};
A pesar de que las listas circulares simplifiquen las operaciones sobre ellas, también
introducen algunas complicaciones. Por ejemplo, en un proceso de búsqueda, no es
tan sencillo dar por terminada la búsqueda cuando el elemento buscado no existe.
Se pueden entonces definir algunos métodos simples de actualización para una lista
circularmente ligada:
agregar: inserta un nuevo nodo v inmediatamente después del cursor; si la lista está
vacía, entonces v se convierte en el cursor y su apuntador sig apunta a el mismo.
remover: borra y regresa el nodo v inmediatamente después del cursor (no el propio
cursor, a menos que este sea el único nodo); si la lista queda vacía, el cursor es puesto
a null.
lista->inicio = NULL;
lista->fin = NULL;
tamaño = 0;
}
Conclusión:
Este tema para mi es un poco complejo, que me costó realizar, tenia muy pocos
conocimientos sobre las listas y en esta actividad aprendí un poco mas sobre cómo es
su función y como es que se diferencian las unas a las otras, aunque solos nos
enfocamos a 3 listas en particular, tengo un poco mas de conocimiento de como es su
uso y la manera en la que se ve sus diagramas, se hablo de estas 3 por lo que son las
que mas frecuentamos y que deberíamos conocer bien.
Bibliografía:
http://www.itnuevolaredo.edu.mx/takeyas/apuntes/estructura%20de%20datos/Apunt
es/02-ListasSimples.pdf
https://www.programaenlinea.net/la-lista-enlazada-simple/
https://sites.google.com/site/edatosubo/4-estructura-de-datos-dinamicas/1-listas/2-
listas-doblemente-enlazadas
https://ccia.ugr.es/~jfv/ed1/tedi/cdrom/docs/ldoble.html
http://odin.fi-b.unam.mx/salac/practicasEDAA/eda1_p7.pdf
https://estr-datos-omar.blogspot.com/2011/10/listas-circulares.html