Está en la página 1de 6

LISTAS DOBLEMENTE ENLAZADAS.

Manuel Pacheco C.

ESTRUCTURA DE DATOS

Instituto IACC

18/05/2020
DESARROLLO DE LA TAREA:

1. Un inspector de un tren está indagando si el pasajero del asiento 23a está en el vagón de la

imagen, para validar el proceso el inspector deberá consultar el ticket del pasajero. Indique qué

operación de listas doblemente enlazadas está realizando el inspector. Explique con sus

palabras y aplicando los conceptos tratados en los contenidos, la forma en la cual se desarrolla

esta operación.

Resp:

La operación de listas doblemente enlazada que está realizando el inspector corresponde

al de “BUSQUEDA”, ya que el inspector está consultando por un asiento único que en este

caso es el 23a, en el vagón deberá ir recorriendo asiento por asiento (nodo por nodo) hasta

llegar al asiento 23a, cabe mencionar que este se puede realizar buscando desde el asiento

numero 1 como del último asiento del tren, el recorrido puede ir en ambos sentidos,

adicionalmente no es necesario recorrer todos los asientos, el proceso de verificación terminará

cuando encuentre el asiento 23a.


2.- Realice una tabla comparativa entre listas enlazadas y listas doblemente enlazadas,

considerando 2 diferencias y/o similitudes en cada caso.

LISTA ENLAZADA LISTA DOBLEMENTE ENLAZADA

Tienen una única dirección Su entrelazo, permite que puedan ir en


cualquier dirección

Los nodos, ocupan un espacio reducido, Los nodos utilizan un mayor espacio, debido
debido a su simplicidad. a las operaciones que realizan

El enlace de los nodos, apuntan al valor Todos los nodos están compuestos por dos
NULL o a la lista vacía. enlaces, con el cual se conectan con el nodo
siguiente y con el nodo anterior

Están compuestas por un enlace por nodo. Corresponde a un conjunto de nodos


entrelazados entre los mismos de forma
secuencial.

3. Usando la siguiente imagen ejemplifique cómo se realiza operación de inserción de un nodo

20 entre el nodo 12 y el nodo 57. Explique paso a paso cómo se realiza el proceso.
 1 Hacemos que nodo->siguiente apunte a lista->siguiente.

 2 Hacemos que Lista->siguiente apunte a nodo.

 3 Hacemos que nodo->anterior apunte a lista.

 4 Hacemos que nodo->siguiente->anterior apunte a nodo.

void Insertar (tElemento x, tPosicion p, tLista l)


{

Argumentos:
l: Es modificada.
p: Es una posición válida para la lista l.
x: Dirección válida de un elemento del tipo T con que se instancia la lista, distinta de NULL.

Efecto: Inserta elemento x en la posición p de la lista l desplazando todos los demás elementos


en una posición.

tPosicion nuevo;
nuevo = (tPosicion)malloc(sizeof(tipocelda));
if (nuevo == NULL)
Error("Memoria insuficiente.");
nuevo->elemento = x;
nuevo->siguiente = p;
nuevo->anterior = p->anterior;
p->anterior->siguiente = nuevo;
p->anterior = nuevo;

Bibliografía
Contenido Semana 6

También podría gustarte