Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructuras
De Datos
Contextualización
2
Tabla de contenido
Introducción ..............................................................................................................................3
3. Pilas ..................................................................................................................................11
4. Colas .................................................................................................................................15
Glosario ...................................................................................................................................19
3
Introducción
En el día a día de un sistema de información existen procesos definidos que debería
realizar un sistema sin excepción, en este caso todos los programas informáticos trabajan con
datos.
Los datos son el recurso más importante de una empresa o de una persona, ya que con
ellos se pueden generar estadísticas, obtener reportes con el fin de tomar las mejores decisiones
para su mejora continua.
Pero para manejar estos datos debemos saber cómo tratarlos, se deben reconocer cada
una de las maneras lógicas de manipularlos y por supuesto de generar un programa algorítmico
para establecer estructuras estables, confiables y ágiles para el manejo de información escalable.
Pregunta orientadora
Sin embargo, para poder realizar programas avanzados que manejen grandes cantidades
de información nos deberiamos realizar la siguiente pregrunta ¿ Cuales son los métodos
existentes en la informatica para manipular los datos de manera eficaz y confiable?
4
A continuación, veremos los diferentes tipos de arreglos que existen en las estructuras de
datos:
• Unidimensionales. Es una serie de datos de un mismo tipo que se almacena en
forma de lista. Cada una de sus posiciones guarda en memoria la información y
podemos consultarla por medio de su índice que va a tener un número asignado
iniciándose desde el 0 a N.
Los arreglos Unidimensionales son más conocidos como vectores y gráficamente se
representarían de la siguiente manera:
Figura 2
Arreglos Unidimensionales
Arreglos Bidimensionales
6
Arreglos Multidimensionales
Las listas en un contexto más práctico se forman en un enlace de nodos que funcionan
como un contendor guardando el valor y el enlace del siguiente nodo.
La estructura básica de un nodo es sencilla; tenemos el valor que simplemente hace
referencia al valor del dato a guardar y enlace que es el apuntamiento en memoria del siguiente
nodo.
Figura 6
Ejemplo de repaso
En este momento ya nuestra lista se encuentra llena, así que si deseamos realizar el
mismo proceso con otro nombre nos generará un error.
Figura 8
Ejemplo de repaso
10
Las listas doblemente enlazadas son una estructura de datos de tipo lista donde en cada
nodo se tienen dos enlaces, el primero que apunta al siguiente nodo y el otro apunta al anterior,
en un lenguaje más práctico podemos interpretar que una lista doblemente enlazada puede
recorrer hacia adelante y hacia atrás excepto el primer elemento de la lista que no puede tener
un predecesor y el último elemento que no tiene un sucesor.
Una representación gráfica de estas listas seria la siguiente:
Figura 9
3. Pilas
Una pila es una lista ordenada en las estructuras de datos, que nos permite almacenar y
acceder a los datos ingresados a ese espacio en memoria, este tipo de estructura es de tipo LIFO
(Last In – First Out) Ultimo que entra último en salir.
Podemos simular el concepto a una caja donde se van a guardar libros, el primer libro en
ingresar se envía al fondo de la caja, el segundo libro se ingresa a la caja quedando al fondo,
pero sobre el primer libro y así sucesivamente hasta llegar al tope de la caja. Si se desea ingresar
12
a tomar el primer libro ingresado toca por obligación empezar a desarmar la pila en el orden del
último que entro hasta el libro buscado que en este caso será el primero que ingreso a la caja.
Gráficamente lo veremos de la siguiente forma:
Figura 13
Para generar una pila con un arreglo se tiene como limitante que se debe reservar el
espacio de memoria con anticipación, una vez que se llega al tope del máximo establecido no es
posible ampliar su espacio, si se intenta realizar este proceso nos generará un error de
desbordamiento de memoria.
A continuación, crearemos una pila en un vector, se creará la pila y la llenaremos de forma
aleatoria con un numero de 0 a 100, pediremos el vector máximo de la pila y la cantidad de
elementos a llenarla (números aleatorios), al final imprimiremos de esos números aleatorios
cuantos son pares e impares.
Recordemos que cuando queramos utilizar la consola en JAVA y obtener datos de esta,
debemos importar la librería Scanner.
Figura 14
Crearemos un método único para generar nuestra pila, este método recibirá la cantidad
de elementos a ingresar, el total del tamaño de la pila y el vector que contendrá los elementos.
En este mismo método vamos a generar aleatoriamente un número del 0 a 100 con la función
Math y realizaremos el conteo de cuantos números son pares e impares.
14
Figura 16
Crearemos un método de tipo void para que no retorne ningún resultado y lo llamaremos
imprimir, este método recibirá un vector de números enteros el cual tendremos que imprimir. Al
imprimir un vector lo más recomendable es utilizar la sentencia cíclica del FOR indicándole que
su cantidad de veces que va a recorrer será la cantidad de elementos ingresados a la pila.
Figura 17
Podemos evidenciar que al salir del FOR estamos imprimiendo el tope de la pila y el
máximo de elementos que puede contener la pila.
Finalmente crearemos un método para imprimir la cantidad de números pares e impares
de nuestra pila que se generaron aleatoriamente.
Figura 18
4. Colas
Las colas son estructuras de datos que se caracteriza por ser de tipo FIFO (First In Forst
Out) debido a que el primer elemento que entra es el primero que sale.
Las colas son especialmente utilizadas en los sistemas informáticos para generar un
orden en un proceso, por ejemplo, en el almacenamiento y envió de documentos, administración
de turnos en centros de atención, etc.
Para representar gráficamente una cola es de la siguiente forma:
Figura 18
Figura 20
Recursos Complementarios
Díaz, G. (2015). Listas Enlazadas (Doctoral dissertation, Universidad de Los Andes, Mérida 5101
Venezuela). Programación digital III.
http://webdelprofesor.ula.ve/ingenieria/gilberto/pr3/index.html
Referencias
Vásquez, Y. (2019). Estructura y base de datos. Concepto y tipos de datos, Arrays, listas
enlazadas, pilas, colas. Organización de base de datos. Tipos de base de datos,
entidades y objetos. Uso de herramientas de cuarta generación en la base de datos.
Aplicaciones a la realidad cotidiana. Monografía, Universidad Nacional de Educación
Enrique Guzmán y Valle. Lima-Perú. https://repositorio.une.edu.pe/handle/UNE/5113
19
Glosario
• FIFO: In computing and in systems theory, FIFO (an acronym for first in, first out) is a
method for organising the manipulation of a data structure (often, specifically a data buffer)
where the oldest (first) entry, or "head" of the queue, is processed first.
• LIFO: is an abbreviation for last in, first out. It is a method for handling data structures
where the first element is processed last and the last element is processed first.