Es un tipo de estructura lineal y dinámica de datos. Lineal porque a cada elemento le puede seguir solo otro elemento; dinámica porque se puede manejar la memoria de manera flexible, sin necesidad de reserva de espacio con antelación.
La principal ventaja de manejar un tipo dinámico de datos es que se pueden adquirir posiciones de memoria a medida que se necesitan; estas se liberan cuando ya no se requieren.
- LISTAS LIGADAS.
En general un noda consta de dos partes:
- Un campo de INFORMACION que sera del tipo de datos que se quieran almacenar en la lista.
- Un campo LIGA, de tipo puntero que se utiliza para establecer la liga o enlace con otro nodo de la lista. Si el nodo fuera el ultimo de la lista, esta campo tendra como valor NIL-vacio-. Al emplearse el campo liga para relacionar dos nodos, no sera necesario almacenar fisicamente a los nodos en espacios contiguos.
- Recorrido de la lista: Consiste en visitar cada uno de los nodos que forman la lista.
- Inserccion de un elemento: Consiste en agregar un nuevo nodo a la lista.
- Borrado de un elemento: Consiste en eliminar un nodo de la lista y liberar espacio de la memoria correspondiente.
- Busqueda de un elemento: Se debe ir recorriendo los nodos hasta encontrar el que estemos buscando o hasta que llegue al final de la lista.
LISTAS CICULARES.
Tiene la caracterstica de que el ultimo elemento de la lista apunta al primero, en lugar de apuntar al vacio o NIL.
Se define una lista simplemente ligada circular como una coleccion de elementos llamados nodos en la cual el ultimo nodo apunta al primero.
La operacion de recorrido de listas circulares se necesita considerar algun criterio para detectar cuando se han visitado todos los nodos de la lista.
Este ultimo con el proposito de evitar caer en ciclos infinitos. Una posible solucion al problema planteado consiste en usar un nodo extra llamado nodo de cabecera, para indicar el inicio de la lista. Este nodo contendra informacion especial de tal manera que se distinga de los demas y asi podra hacer referencia al pricipio de la lista.
Es una coleccion de nodos, en la cual cada uno de ellos tiene dos apuntadores, uno apuntando a su predecesor (LIGAIZQ) y otra a su sucesor (LIGADER). Por medio de estos punteros se podra entonces avanzar o retroceder a traves de la lista, segun se tomen las direcciones de uno u otro
apuntador.
Las operaciones que se pueden llevar a cabo con este tipo de estructuras son las mismas que con listas simplemente ligadas. En esta seccion se presentaran las operaciones de:
- Recorrido de la lista: Al tener cada nodo una doble liga, la lista se puede recorrer tanto del inicio al final, mediante la ligas derechas, com en sentido inverso; es decir del final al principio, con las ligas izquierdas.
- Inserccion de un elemento: Agrgar un nuevo nodo a la lista y establecer los apuntadores correspondientes.
- Borrado de un elemento: Eliminar un elemento de la lista, redefiniendo los apuntadores correspondientes y liberando el espacio de memoria ocupado por el nodo.
0 comentarios: