Está en la página 1de 10

2022

Listas, Pilas y Colas


ESTRUCTURA DE DATOS
JOSÉ DANIEL BOADA
Introducción

En este trabajo se hablará sobre las Listas, Pilas y Colas relacionadas a


la programación, estructura de datos, etc. También otros temas como las
Tablas Hash, los arboles generales, binarios de búsqueda, así como también
los arboles AVL y APO, y por último el tema de Grafos.
Primero se hablará de las Listas, Pilas y Colas con un ejemplo de cada uno,
luego vendría siendo las Tablas Hash también con un ejemplo, para después
hablar sobre los arboles generales, binarios y los binarios de búsqueda,
seguimos con los Arboles AVL con su ejemplo y los Arboles APO y por
último la definición de Grafos con su ejemplo.
Desarrollo

Listas, Pilas y Colas


Listas: Es un tipo de dato auto referenciado porque contienen un
puntero o link a otro dato del mismo tipo. Las listas enlazadas permiten
inserciones y eliminación de nodos en cualquier punto de la lista en tiempo
constante (suponiendo que dicho punto está previamente identificado o
localizado), pero no permiten un acceso aleatorio. Existen diferentes tipos de
listas enlazadas:
 Listas Enlazadas Simples
 Listas Doblemente Enlazadas
 Listas Enlazadas Circulares
 Listas Enlazadas Doblemente Circulares
Las listas enlazadas pueden ser implementadas en muchos lenguajes.
Lenguajes tales como Lisp y Scheme tiene estructuras de datos ya construidas,
junto con operaciones para acceder a las listas enlazadas. Lenguajes
imperativos u orientados a objetos tales como C o C++ y Java,
respectivamente, disponen de referencias para crear listas enlazadas.
Operaciones básicas de una lista (Ejemplo):
 Recorrer los elementos hacia adelante
 Recorrer los elementos hacia atrás
 Insertar un nuevo elemento al principio
 Insertar un nuevo elemento al final
 Insertar un nuevo elemento antes de otro
 Insertar un nuevo elemento después de otro
 Remover un elemento del principio
 Remover un elemento que esta antes que otro
 Remover un elemento que esta después de otro
 Remover un elemento del principio
 Remover un elemento del final
Pilas: Es un método de estructuración de datos usando la forma LIFO
(último en entrar, primero en salir), que permite almacenar y recuperar datos.

Operaciones de las Pilas (Ejemplo):


Las operaciones que se pueden realizar con una
pila son:
 PUSH (pila, elemento):
Introduce un elemento en la pila. También se
le conoce como poner o meter.
 POP (pila):
Elimina un elemento de la pila. También se le
conoce como sacar o quitar.
 VACIA (pila):
Función booleana que indica si la pila es vacía
o no.

Colas: Es una estructura de datos, 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 pop por el otro.
También se le llama estructura FIFO (First In First Out), debido a que el
primer elemento en entrar será también el primero en salir. Por ejemplo:
 Cola de automóviles esperando servicio en una gasolinera.
 Cola de clientes en una ventanilla del banco para pagar un servicio.
 Cola de programas en espera de ser ejecutados por una computadora.

Tipos de Colas:
 Cola Simple: Estructura lineal donde los elementos salen en el mismo
orden en que llegan.
 Cola Circular: Representación lógica de una cola simple en un arreglo.
 Cola de Prioridades: Estructura lineal en la cual los elementos se
insertan en cualquier posición de la cola y se remueven solamente por el
frente.
 Cola Doble (Bicola): Estructura lineal en la que los elementos se
pueden añadir o quitar por cualquier extremo de la cola (Cola
bidireccional).
Operaciones básicas en Colas Simples (Ejemplo):
 Insertar: Almacena al final de la cola el elemento que se recibe como
parámetro.
 Eliminar: Saca de la cola el elemento que se encuentra al frente.
 Vacía: Regresa un valor booleano indicando si la cola tiene o no
elementos (true – si la cola está vacía, false – si la cola tiene al menos
un elemento).
 Llena: Regresa un valor booleano indicando si la cola tiene espacio
disponible para insertar nuevos elementos (true – si esta llena y false –
si existen espacios disponibles).

Tablas Hash
Es una estructura de datos que asocia llaves o claves con valores. La
operación principal que soporta de manera eficiente es la búsqueda: permite el
acceso a los elementos (teléfono y dirección, por ejemplo) almacenados a
partir de una clave generada (usando el nombre o número de cuenta, por
ejemplo). Funciona transformando la clave con una función hash en un hash,
un número que identifica la posición (casilla o cubeta) donde la tabla hash
localiza el valor deseado.
Ejemplo:

Árboles Generales
Es una estructura no lineal acíclica utilizada para organizar información
de forma eficiente. La definición es recursiva:
Un árbol es una colección de valores {v1, v2, . . . vn} tales que
 Si n = 0 el árbol se dice vacío
 En otro caso, existe un valor destacado que se denomina raíz (p.e. v1),
y los demás elementos forman parte de colecciones disjuntas que a su
vez son árboles. Estos árboles se llaman subárboles de la raíz.

Árboles Binarios
Un árbol binario es árbol tal que cada nodo tiene como máximo dos
subárboles.
Consideraremos que las tres componentes del constructor NodoB son el
subárbol izquierdo, el dato raíz y el subárbol derecho respectivamente.
Si falta un subárbol, se usa VacíoB.

Árboles Binarios de Búsqueda


Un árbol binario de búsqueda es un árbol binario tal que
 O bien es vacío
 O no es vacío y para cualquier nodo se cumple que:
 Los elementos del correspondiente subárbol izquierdo son
menores o iguales al almacenado en el nodo
 Y los elementos del correspondiente subárbol derecho son
estrictamente mayores al almacenado en el nodo

Árboles AVL
Es un tipo especial de árbol binario ideado por los matemáticos
soviéticos Adelson-Velskii y Landis.
 Un árbol vacío es un árbol AVL
 Si T es un árbol no vacío y Ti y Td sus subárboles, entonces T es AVL
si y solo si:
o Ti es AVL
o Td es AVL
o

Ejemplo de un Árbol AVL:

no es AVL sí es AVL

Árbol APO
Un árbol A se dice parcialmente ordenado (APO) si cumple la
condición de que la etiqueta de cada nodo es menor (de igual forma mayor) o
igual que las etiquetas de los hijos (se supone que el tipo elemento base admite
un orden) manteniéndose además tan balanceado como sea posible, en el caso
óptimo equilibrado.
Las operaciones básicas en este tipo de árboles son la de inserción de un
elemento y la de borrado del elemento de menor etiqueta (la raíz), con la
consiguiente problemática que se plantea al tener que dejar el árbol tras
cualquier operación tanto equilibrado como cumpliendo la condición de orden
parcial. Un ejemplo de este tipo de árboles muestra en la siguiente figura:
Grafos
Es un conjunto de objetos llamados vértices o nodos unidos por enlaces
llamados aristas o arcos, que permiten representar relaciones binarias entre
elementos de un conjunto. Típicamente, un grafo se representa gráficamente
como un conjunto de puntos (vértices o nodos) unidos por líneas (aristas o
arcos).
Conclusión

En conclusión, las listas, pilas y colas son estructuras de datos que están
hechas para facilitar la programación ya que, son fáciles de utilizar y podemos
utilizarlas para abarcar una gran cantidad de operaciones.
También se podría decir que un árbol binario se define como un
conjunto finito de elementos llamados nodos. En estos casos se puede usar
terminología de relaciones familiares para descubrir las relaciones entre los
nodos de un árbol; y que un árbol puede ser implementado fácilmente en una
computadora. Es bueno hacer énfasis en esto ya que se puede saber mucho
sobre lo que tiene que ver con los árboles; entre las cosas que podemos
mencionar se encuentra la raíz, los nodos de un árbol y la diferencia entre
nodos sucesores y nodos terminales, como se muestran en el contenido del
trabajo.

También podría gustarte