Está en la página 1de 3

Actividad de evaluación

Estructura de Datos
Modalidad Virtual
1.Explique la diferencia entre una lista simple, una lista enlazada y una lista doblemente
enlazada

2.Escriba o envía el proceso para agregar un nodo nuevo al final de una lista enlazada.
3.Teniendo en cuenta el siguiente enunciado diga que estructura es la que mejor se
acomoda al problema.a.“el concierto de un artista famoso tiene problemas a la hora del
ingreso del público, ya que se ha encontrado que muchos tiene una boleta vip y están en
la fila de general, teniendo en cuenta que la fila vip las boletas están numeradas y que
además las personas que se deben pasar a la fila vip deben ingresar en el puesto que les
toca es decir detrás del numero que le toca, y si el puesto que va delante del no se
encuentra entonces él debe tomar el primer puesto de la lista. “

Las listas simples, listas enlazadas y listas doblemente enlazadas son estructuras de datos utilizadas
en programación para organizar y gestionar colecciones de elementos. Cada una de ellas tiene sus
propias características y ventajas, y la principal diferencia entre ellas radica en cómo los elementos
se almacenan y cómo se accede a ellos. Aquí te explico cada una de ellas:

1. **Lista Simple (Singly Linked List):**

- **Estructura:** En una lista simple, cada elemento se almacena en un nodo, y cada nodo
contiene dos campos: uno para almacenar el valor del elemento y otro para almacenar una
referencia (o puntero) al siguiente nodo en la lista.

- **Acceso:** Para acceder a un elemento en una lista simple, se debe recorrer la lista desde el
principio hasta el elemento deseado, siguiendo los punteros de un nodo al siguiente. Esto significa
que el acceso a elementos específicos puede ser más lento que en otras estructuras si el elemento
deseado no está cerca del inicio de la lista.

- **Ventajas:** Las listas simples son simples de implementar y son útiles cuando se necesita
una inserción o eliminación eficiente en el inicio de la lista, ya que estas operaciones son rápidas.

2. **Lista Enlazada Doble (Doubly Linked List):**


- **Estructura:** En una lista enlazada doble, cada nodo contiene tres campos: uno para el valor
del elemento, uno para una referencia al siguiente nodo y otro para una referencia al nodo
anterior en la lista.

- **Acceso:** Debido a que cada nodo tiene referencias tanto al siguiente como al nodo anterior,
el acceso a elementos en cualquier parte de la lista es más eficiente que en una lista simple.
Puedes moverte hacia adelante o hacia atrás en la lista de manera más rápida.

- **Ventajas:** Las listas doblemente enlazadas son útiles cuando se necesitan operaciones de
inserción y eliminación eficientes tanto en el inicio como en el final de la lista, y cuando se necesita
acceso rápido a elementos en cualquier posición de la lista.

3. **Lista Simple Circular (Singly Circular Linked List):**

- **Estructura:** Es similar a una lista simple, pero el último nodo apunta al primer nodo,
formando un bucle circular.

- **Acceso:** El acceso se realiza de manera similar a una lista simple, pero cuando llegas al
último nodo, en lugar de terminar, vuelves al primer nodo. Esto permite un recorrido continuo de
la lista.

- **Ventajas:** Útil cuando se necesita un bucle infinito o cuando se desea recorrer la lista una
y otra vez sin llegar al final.

En resumen, la principal diferencia entre estas estructuras radica en la eficiencia del acceso a
elementos y las operaciones de inserción y eliminación en diferentes puntos de la lista. La elección
de la estructura de datos adecuada depende de los requisitos específicos de tu aplicación.

Punto 2: nodo_actual = cabeza # Suponiendo que "cabeza" es la referencia al primer nodo

while nodo_actual.siguiente is not None:

nodo_actual = nodo_actual.siguiente

punto 3:

Para el problema descrito, la estructura de datos que mejor se adapta es una cola de prioridad o
una cola con prioridad. En este caso, la fila VIP se maneja como una cola de prioridad donde las
personas deben ingresar en función de su número de boleta VIP.

Aquí está cómo esta estructura de datos encaja con los requerimientos del problema:

Prioridad basada en el número de boleta VIP: Cada persona con una boleta VIP tiene un número
asociado que determina su prioridad. Las personas con números de boleta más bajos tienen una
prioridad más alta para ingresar a la fila VIP. Una cola de prioridad puede organizar
automáticamente a las personas en orden ascendente de sus números de boleta VIP.
Manejo de ingreso cuando el puesto no está disponible: Si una persona debe ingresar detrás de un
número específico de boleta VIP y ese puesto ya está ocupado, la cola de prioridad manejará
automáticamente esta situación. La persona que no puede ingresar detrás de su número de boleta
tomará el primer puesto disponible en la fila VIP.

Operaciones eficientes: Las colas de prioridad generalmente permiten operaciones de inserción y


extracción eficientes, lo que es importante cuando se maneja el ingreso de una gran cantidad de
personas.

En resumen, una cola de prioridad es una estructura de datos adecuada para manejar el ingreso de
personas con boletas VIP en un concierto de un artista famoso según los requisitos mencionados
en el enunciado.

También podría gustarte