Professional Documents
Culture Documents
Estructura de Datos
Instituto IACC
23/12/2017
1) Suponga que Ud. es un programador y le han solicitado que organice una base de datos de los
estudiantes de una red de colegios pertenecientes a una congregación, para que sea manejada por
el área administrativa. De acuerdo a sus conocimientos informáticos, concluye que lo mejor es
trabajar los datos con listas doblemente enlazadas.
Argumente adecuadamente su decisión tomando en cuenta las ventajas de usar este sistema de
estructura de datos.
a) Si tuviera que insertar dos nodos uno entre los nodos 1 y 2 y el otro entre los nodos 3 y 4 ¿cómo
quedaría configurada la nueva lista doblemente enlazada?
b) Y de la lista doblemente enlazada recién reconfigurada, que ahora cuenta con siete nodos,
tuviera que borrar el nodo 2 ¿cómo quedaría configurada la nueva lista doblemente enlazada?
Desarrollo
1) Las listas doblemente enlazadas requieren más espacio por nodo y sus operaciones básicas
resultan más costosas, pero ofrecen una mayor facilidad para manipular ya que permiten el
acceso secuencial a la lista en ambas direcciones. En particular, uno puede insertar o borrar
diferencia de las listas simples que requieren la dirección del nodo anterior para insertar o
El doble enlace de los nodos permite recorrer la lista en cualquier dirección, mientras que
agregar o eliminar un nodo en una lista doblemente enlazada requiere cambiar más enlaces
que en estas mismas operaciones en una lista enlazada simple. Eso sí, las operaciones son
recorrido ni necesidad de recorrer la lista completa para hallar el nodo anterior. La referencia
Al final lo que importa es el resultado y como con este tipo de listas doblemente enlazadas
El puntero del nodo 1 siguiente, ahora va al nuevo nodo, así como el puntero del nodo
2 anterior, y el nuevo nodo apunta como anterior al nodo 1 y como siguiente al nodo 2.
En ambos casos la misma secuencia, variando el numero del nodo por supuesto.
* puntero siguiente de nodo 1 que apunta a nodo 2, ahora apunta a nuevo nodo
* puntero anterior de nodo 2 que apuntaba a nodo 1, ahora apunta a nuevo nodo
* puntero siguiente de nodo 3 que apunta a nodo 4, ahora apunta a nuevo nodo
* puntero anterior de nodo 4 que apuntaba a nodo 3, ahora apunta a nuevo nodo
valor anterior a ese índice y todos los valores subsiguientes, a través de la lista.
El puntero siguiente del nodo 1 ahora apunta al nodo 3 y el puntero anterior del nodo 3
* borrado de memoria
Como no encontré información de borrado de nodo intermedio, solo inicio y fin. Puede ser algo
como esto: