Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Definición.
Es una lista ordenada o estructura de datos que permite almacenar y recuperar datos, siendo el modo de
acceso a sus elementos de tipo LIFO (del inglés Last In, First Out, «último en entrar, primero en salir»).
OPERACIONES EN PILAS: NEW, PUSH, POP, TOP, ISEMPTY
Habitualmente, junto a las dos operaciones básicas de apilar y desapilar (push, pop), las pilas puede
implementar otra serie de funciones:
● Crear (constructor): crea la pila vacía.
● Tamaño (size): regresa el número de elementos de la pila.
● Apilar (push): añade un elemento a la pila.
● Desapilar (pop): lee y retira el elemento superior de la pila.
● Leer último (top o peek): lee el elemento superior de la pila sin retirarlo.
● Vacía (empty): devuelve cierto si la pila está sin elementos o falso en caso de que contenga alguno.
Aplicación de Pilas.
Aplicaciones directas:
● Historial de páginas visitadas en un browser de web.
● Secuencia de “Deshacer” en un editor de textos.
Aplicaciones indirectas:
● Estructuras de datos auxiliares para algoritmos
● Componentes de otras estructuras de datos.
Pilas usando Arreglos.
COLA
Definición.
Una cola (también llamada fila) es un tipo de dato abstracto, caracterizada por ser una secuencia de
elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pull por el
otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar
será también el primero en salir.
En Cola: new (queue), enqueue, dequeue, front, isempty.
● Crear: se crea la cola vacía.
● Encolar: se añade un elemento a la cola. Se añade al final de esta.
● Desencolar: (sacar, salir, eliminar): se elimina el elemento frontal de la cola, es decir, el primer elemento que
entró.
● Frente: (consultar, front): se devuelve el elemento frontal de la cola, es decir, el primer elemento que entró.
● Vacía (empty): devuelve cierto si la cola está sin elementos o falso en caso de que contenga alguno.
Implementación de colas como arreglos.
Arreglos Circulares.
Una cola circular o anillo es una estructura de datos en la que los elementos están de forma circular y cada
elemento tiene un sucesor y un predecesor. Los elementos pueden consultarse, añadirse y eliminarse únicamente
desde la cabeza del anillo que es una posición distinguida. Existen dos operaciones de rotaciones, una en cada
sentido, de manera que la cabeza del anillo pasa a ser el elemento sucesor, o el predecesor, respectivamente, de la
cabeza actual.
Colas como Lista enlazadas.
Planteamiento: Para resolver el problema sigue la siguiente idea:
Mantenemos dos punteros, anterior y posterior. El anterior apunta al primer elemento de la cola y el posterior
al último.
enQueue(): Esta operación añade un nuevo nodo después del rear y mueve el rear al siguiente nodo.
deQueue(): Esta operación elimina el nodo anterior y mueve el anterior al siguiente nodo.
Sigue los siguientes pasos para resolver el problema:
Crea una clase QNode con miembros de datos integer data y QNode* next
Un constructor parametrizado que tome un valor entero x como parámetro y
establezca data igual a x y next como NULL
Crea una clase Queue con miembros de datos QNode anterior y posterior
Operación Enqueue con parámetro x:
Inicializa QNode* temp con data = x
Si rear es igual a NULL entonces set front y rear a temp y return(Base Case)
Else set rear next to temp and then move rear to temp
Operación Dequeue:
Si el front es NULL return(Base Case)
Inicializar QNode temp con front y poner front a su siguiente
Si el front es igual a NULL entonces pon el rear a NULL
Borrar temp de la memoria