ACTIVIDADAD 3
PILAS Y LISTAS DOBLEMENTE CIRCULAR
1. Documentar que son las PILAS en estructura de datos y para que se utilizan.
Las pilas, en estructura de datos, son una colección de elementos organizados de tal manera que solo se pueden agregar o quitar elementos desde un extremo específico, conocido como la parte superior de la pila. Esta estructura sigue el principio de "último en entrar, primero en salir" (LIFO, por sus siglas en inglés), lo que significa que el último elemento agregado a la pila es el primero en ser retirado. Las pilas se utilizan ampliamente en informática y programación para una variedad de tareas y aplicaciones.
Aquí tienes una descripción más detallada de las pilas y sus usos:
Estructura de Datos: Una pila es una estructura de datos lineal que consta de una colección de elementos, generalmente del mismo tipo, organizados en una secuencia lineal. La característica distintiva de una pila es su comportamiento LIFO, lo que significa que el último elemento agregado a la pila es el primero en ser retirado.
Operaciones Básicas en Pilas: Las pilas admiten dos operaciones fundamentales:
- Push (Empujar): Agrega un elemento a la parte superior de la pila.
- Pop (Sacar): Retira el elemento superior de la pila.
Elementos Relevantes en una Pila:
- Top (Parte Superior): El elemento más reciente agregado a la pila.
- Empty (Vacia): Indica si la pila está vacía o no.
- Size (Tamaño): El número de elementos en la pila.
Aplicaciones y Usos de Pilas:
- Gestión de llamadas a funciones: Las pilas se utilizan en la administración de llamadas a funciones en la memoria de un programa. Cada vez que se llama a una función, se agrega a la pila, y cuando la función termina, se retira de la pila.
- Navegación en la web: Los navegadores web utilizan pilas para realizar un seguimiento de las páginas visitadas. Cada vez que se hace clic en un enlace, la URL se agrega a la pila y se puede regresar utilizando la operación "Atrás".
- Evaluación de expresiones matemáticas: Las pilas se usan en la evaluación de expresiones matemáticas en notación polaca inversa (RPN) o para validar la sintaxis de expresiones algebraicas.
- Reversión de texto: Las pilas pueden utilizarse para invertir una cadena de texto de manera eficiente.
- Implementación de algoritmos: Muchos algoritmos y estructuras de datos utilizan pilas como una herramienta fundamental en su implementación, como el algoritmo de búsqueda en profundidad (DFS) en grafos.
2. Investigar que son Listas Doblemente Ligadas Circular Con Registro Cabeza y sus diferencias con las doblemente ligadas y simplemente ligadas.
Las Listas Doblemente Ligadas Circulares con Registro Cabeza (también conocidas como Doubly Linked Circular Lists with Header o DLCL con Header) son una variante de las listas enlazadas que tienen algunas características específicas. Para entenderlas mejor, primero explicaremos qué son las listas doblemente ligadas y simplemente ligadas y luego señalaremos las diferencias clave con las listas doblemente ligadas circulares con registro cabeza.
1. Lista Simplemente Ligada (Singly Linked List): Una lista simplemente ligada es una estructura de datos en la que cada elemento, llamado nodo, contiene dos partes: un valor (o dato) y un enlace (o puntero) al siguiente nodo en la secuencia. La lista comienza con un nodo llamado cabeza que señala al primer elemento y termina con un nodo que tiene un puntero nulo para indicar el final de la lista. Los elementos en una lista simplemente ligada están conectados en una sola dirección, desde la cabeza hasta el final.
2. Lista Doblemente Ligada (Doubly Linked List): Una lista doblemente ligada es similar a una lista simplemente ligada, pero cada nodo tiene dos punteros: uno que apunta al nodo siguiente y otro que apunta al nodo anterior en la secuencia. Esto permite recorrer la lista en ambas direcciones, lo que facilita operaciones como la inserción y eliminación en cualquier punto de la lista.
3. Lista Doblemente Ligada Circular con Registro Cabeza (DLCL con Header): Ahora, veamos las características de las listas doblemente ligadas circulares con registro cabeza y sus diferencias con las listas doblemente ligadas y simplemente ligadas:
Registro Cabeza (Header): En una DLCL con Header, se utiliza un nodo especial llamado "cabeza" o "header" que no contiene datos, pero tiene punteros al primer y último nodo de la lista. Esto facilita la gestión de la lista, ya que siempre hay un punto de entrada fijo.
Circulares: La lista es circular en el sentido de que el último nodo apunta al primer nodo y viceversa. Esto significa que no hay un final definitivo o nulo; puedes recorrer la lista de manera continua desde cualquier punto.
Ventajas: Las DLCL con Header combinan las ventajas de las listas doblemente ligadas (recorrido en ambas direcciones) y las listas circulares (sin un final claro). Esto las hace útiles en situaciones donde se necesita un acceso eficiente tanto al principio como al final de la lista y se requiere un ciclo continuo a través de la lista.
Desventajas: El uso de un nodo de registro cabeza puede aumentar la complejidad de la implementación en comparación con las listas simplemente ligadas o doblemente ligadas estándar.
