Universidad Autónoma de Santo Domingo
Escuela de Informática
Nombre:
Rocky Herasme
Matrícula:
CG-6286
Asignatura:
Estructura de Datos
Sección:
03
Tema
Campo de Aplicación de los TDA Lineales
Tutor:
Jerson Rodríguez Jaquez
Santo Domingo Oeste
25/10/2020
Índice
INTRODUCCION ...............................................................................................................................
ESTRUCTURAS DE DATOS .............................................................................................................. 1
Operaciones Básicas .................................................................................................................. 1
Clasificación ............................................................................................................................... 1
Estáticas:........................................................................................................................ 1
Dinámicas: ..................................................................................................................... 1
PILA................................................................................................................................................ 2
Historia ...................................................................................................................................... 2
Representación Gráfica de una Pila .......................................................................................... 2
Operaciones básicas de una pila ............................................................................................... 3
Aplicaciones de las Pilas ............................................................................................................ 3
COLAS ............................................................................................................................................ 4
Representación Gráfica ............................................................................................................. 4
Operaciones Básicas .................................................................................................................. 4
Insertar en la cola (encolar): ......................................................................................... 4
Retirar de la cola (desencolar): ..................................................................................... 4
Ejemplo de una cola: ................................................................................................................. 5
Aplicaciones de las Colas ........................................................................................................... 5
LISTAS ENLAZADAS ........................................................................................................................ 6
Historia .......................................................................................................................................... 6
Representación Gráfica ............................................................................................................. 6
Operaciones Básicas de Listas: .................................................................................................. 7
Insertar: ......................................................................................................................... 7
Borrar: ........................................................................................................................... 7
Otras operaciones ..................................................................................................................... 7
Tamaño:......................................................................................................................... 8
Buscar: ........................................................................................................................... 8
Recorrer lista ................................................................................................................. 8
Aplicaciones de las listas: .......................................................................................................... 8
CONCLUSION ................................................................................................................................. 9
BIBLIOGRAFIA .............................................................................................................................. 10
INTRODUCCION
Una estructura de datos es una forma de organizar datos para facilitar su
manipulación, existen herramientas que ayudan a facilitar la organización y
manipulación de los datos tales como los vectores que usan una serie de
almacenamiento continuo y almacenan elementos del mismo tipo, las listas
enlazadas que es un tipo de dato auto referenciado, las colas que se
caracterizan porque los elementos entran por un extremo y salen por el otro,
usa la estructura FIFO (primero en entrar es el primero en salir), al contrario
están las pilas que usan la estructura LIFO (ultimo en entrar, primero en salir).
En el siguiente trabajo de investigación mostraremos las estructuras de
datos lineales, Listas, Colas y Pilas, un poco de su historia, su campo de
aplicación y algunos ejemplos para ayudar a comprender mejor su
funcionamiento.
ESTRUCTURAS DE DATOS
Las estructuras de datos determinan la conexión lógica entre los datos y
afectan el procesamiento físico de los datos. En programación, una estructura
de datos es una forma de organizar la mínima información de un sistema, con
el objetivo de facilitar la manipulación de estos datos como un todo o
individualmente. Definen la organización e interrelación de estos y un conjunto
de operaciones que se pueden realizar sobre ellos.
Operaciones Básicas
Alta: adicionar un nuevo valor a la estructura.
Baja: borrar un valor de la estructura.
Búsqueda: encontrar un determinado valor en la estructura.
Ordenamiento de los elementos pertenecientes a la estructura.
Apareo dadas dos estructuras originar una nueva ordenada y que
contenga a las apareadas.
Clasificación
Estáticas: son aquellas en las que el tamaño ocupado en memoria se
definen antes de que el programa se ejecute y no puede modificarse
durante la ejecución del programa. Estos son: Arreglos (arrays), registro,
archivos (files), conjuntos, cadenas (string).
Dinámicas: no tienen limitaciones o restricciones en el tamaño de
memoria ocupada, es decir, pueden incrementar o disminuir el tamaño
en memoria durante la ejecución del programa, dependiente de las
necesidades de la aplicación. Estas son: Listas, pilas y colas, árboles y
grafos.
Página | 1
PILA
Historia
El método de pila para la evaluación de expresiones fue propuesto en
1955 y dos años después patentado por Friedrich L. Bauer, quien recibió en
1988 el premio “IEEE Computer Society Pioneer Award” por su trabajo en el
desarrollo de dicha estructura de datos.
Una pila (stack en inglés) es una estructura de datos en la que el modo
de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último
en entrar, primero en salir) que permite almacenar y recuperar datos, es decir,
la inserción y extracción de elementos de la pila siguen el principio LIFO ya que
el último elemento que se agrega a la pila es el primero en salir de la misma.
Representación Gráfica de una Pila
En el gráfico se observa que el último elemento que se insertó en la
pila (elemento n) está ubicado en el tope de la misma, si se desea sacar un
elemento, saldría este mismo.
Página | 2
Operaciones básicas de una pila
Insertar en la pila (apilar o push): agrega un elemento a la pila, este
nuevo elemento de la pila estará en el tope de la misma.
Retirar de la pila (desapilar, pop): retira o elimina el último elemento de
la pila, es decir, elimina el elemento que está en el tope.
Ejemplo:
Por analogía con objetos cotidianos, una operación apilar equivaldría a colocar
un plato sobre una pila de platos, y una operación desapilar a quitar el plato
que está encima.
Aplicaciones de las Pilas
Las pilas se utilizan en muchas aplicaciones que utilizamos con frecuencia:
Gestión de ventanas en Windows o Linux (cuando cerramos una ventana
siempre recuperamos la que teníamos detrás).
Evaluación general de cualquier expresión matemática para evitar tener que
calcular el número de variables temporales que hacen falta.
Navegador Web
Se almacenan los sitios previamente visitados
Página | 3
Cuando el usuario quiere regresar (presiona el botón de retroceso o
regresar), simplemente se extrae la última dirección (pop) de la pila
de sitios visitados.
Editores de texto u otras herramientas
Los cambios efectuados se almacenan en una pila
El Usuario puede deshacer los cambios mediante la
operación “undo” o deshacer, la cual extrae el estado del texto o
cualquier elemento, antes del último cambio realizado.
COLAS
Una cola es una estructura de datos en la que el modo de acceso a sus
elementos es de tipo FIFO (del inglés First Input First Output, primero en entrar,
primero en salir). Permite almacenar y recuperar datos, es decir, la inserción y
extracción de elementos de la cola siguiendo el principio FIFO. Cuando se
agrega un elemento a la cola, éste se agrega al final. Cuando se elimina un
elemento de la cola, se elimina el que está al frente de la cola, es decir, el
primero.
Representación Gráfica
Operaciones Básicas
Insertar en la cola (encolar): agrega un elemento a la cola, este nuevo
elemento de la cola estará en el extremo final de la misma.
Retirar de la cola (desencolar): retira o elimina el primer elemento de
la cola, es decir, elimina el elemento que está en el frente.
Página | 4
Ejemplo de una cola:
Si insertamos el elemento 15 a la cola, éste sería el elemento final y quedaría
de la siguiente manera:
Si eliminamos un elemento de la cola, se eliminaría el primer elemento (frente)
que corresponde al 26, por lo tanto ahora el frente sería el elemento 20:
Aplicaciones de las Colas
Las colas se utilizan en muchas aplicaciones que utilizamos con frecuencia.
Impresión de documentos: Cuando imprimimos varios documentos, éstos se
imprimen en el orden en que lo mandamos a imprimir.
Los números de tickets para atender público.
La simulación de cualquier cola de elementos.
Un ejemplo práctico de la vida cotidiana de colas, son las colas que
realizamos en los bancos o en cualquier lugar. La cola para subir al autobús
está compuesta de elementos (personas), que dispone de dos extremos
comienzo y fin. Por el comienzo se extraerá un elemento cuando haya
comprado el billete para su viaje, y si llega una nueva persona con intención
de usar el autobús, tendrá que colocarse al final y esperar que todos los
elementos situados antes que él abandonen la cola.
Página | 5
LISTAS ENLAZADAS
Una lista enlazada es una de las estructuras de datos fundamentales, y
puede ser usada para incrementar otras estructuras de datos. Una lista
consiste en una secuencia de nodos, en los que se guardan campos de datos
arbitrarios y una o dos referencias (punteros) al nodo anterior o posterior. El
principal beneficio de las listas enlazadas respecto a los arreglos
convencionales es que el orden de los elementos enlazados puede ser
diferente al orden de almacenamiento en la memoria o el disco, permitiendo
que el orden de recorrido de la lista sea diferente al de almacenamiento.
Historia
Las listas enlazadas fueron desarrolladas en 1955-56 por Cliff Shaw y
Herbert Simon en RAND Corporation como la principal estructura de datos
para su lenguaje de procesamiento de la información (IPL). IPL fue usado por
los autores para desarrollar varios programas relacionados con la inteligencia
artificial, incluida la máquina de la teoría general, el solucionador de problemas
generales y un programa informático de ajedrez.
El diagrama clásico actual, que consiste en bloques que representan
nodos de listas con flechas apuntando a los sucesivos nodos de la lista
apareció en Programing the Logic Theory Machine, de Newell y Shaw. Newell y
Simon fueron reconocidos por el ACM Turing Award en 1975 por “hacer
contribuciones básicas a la inteligencia artificial, a la psicología del
conocimiento humano y al procesamiento de las listas.
Representación Gráfica
Página | 6
Nodos de las listas:
Un nodo se divide en 2 partes:
Información: contiene la información del elemento.
Enlace: contiene la dirección del siguiente nodo de la lista.
Operaciones Básicas de Listas:
Insertar:
La operación insertar consiste en la introducción de un nuevo elemento en la
lista.
En una lista no ordenada no es necesario mantener ningún orden, por lo tanto
la inserción de elementos se puede realizar en cualquier lugar de la lista, al
principio, al final, en una posición aleatoria. Generalmente se realiza la
inserción de tal forma que la complejidad temporal sea mínima, es decir, que
sea una operación sencilla para que se realice en el menor tiempo posible. La
operación más sencilla depende de la implementación de la estructura de
datos, en unos casos puede ser la inserción al inicio, en otros la inserción al
final y en este caso la inserción la realiza en el segundo nodo de la lista.
Borrar:
La operación borrar consiste en la eliminación de la lista de un elemento
concreto. El elemento a borrar será escogido por el programador.
La eliminación en una lista no conlleva ningún trabajo adicional más que el
propio de la eliminación del elemento en sí. Para borrar un elemento cualquiera
habría que realizar un recorrido secuencial de la lista hasta encontrar el nodo
buscado y una vez localizado reestructurar los punteros para saltarse el nodo a
borrar y así poder eliminarlo.
Otras operaciones
A partir de estas dos operaciones básicas cada lista puede presentar muchas
operaciones diferentes, vamos a comentar algunas de ellas, dejando claro que
las dos básicas que siempre aparecerán son las anteriores.
Página | 7
Tamaño: Esta operación suele informar sobre el número de elementos
que tiene en ese instante la lista.
Buscar: Comprueba si existe un determinado elemento en la lista.
Recorrer lista: Recorre toda la lista, realizando una operación en cada
nodo. Por ejemplo, mostrar el contenido por pantalla.
Aplicaciones de las listas:
Las listas enlazadas son usadas como módulos para otras estructuras
de datos, tales como pilas, colas y sus variaciones.
Las listas son muy útiles para los casos en los que se necesita
almacenar información de la que no se conoce su tamaño con antelación,
también son de gran utilidad para las situaciones en las que el volumen de
datos se puede incrementar o decrementar dinámicamente durante la ejecución
del programa.
Se pueden utilizar como implemento de vectores asociativos, ya que los
vectores asociativos pueden usar como complemento las listas para estar en el
contexto de las llamadas listas asociativas. Hay pocas ventajas en este uso de
las listas enlazadas; hay mejores formas de implementar estas estructuras, por
ejemplo con árboles binarios de búsqueda equilibrados.
Página | 8
CONCLUSION
En este trabajo de investigación pudimos conocer la definición de
Estructuras de Datos, sus operaciones básicas y clasificación. Tuvimos un
enfoque más profundo en las estructuras de datos dinámicas, Pilas, Colas y
Listas enlazadas, mostrando una breve definición de cada una de ellas, la
representación gráfica, su aplicación y las operaciones básicas que estas
realizan. Nuestro objetivo es que conozcan un poco más estas estructuras de
una manera clara y resumida, esperamos que estos se hayan cumplido en su
totalidad.
Página | 9
BIBLIOGRAFIA
https://es.calameo.com/read/000512826eb8a395e2e62.
www.es.scribd.com/document/270344265/Estructuras-de-Datos-Listas-y-Colas.
www.algoritmia.net/articles.php?id=13.
Página | 10