Sunteți pe pagina 1din 11

Estructura de datos

Unidad 1. Estructura de datos

Ingeniera en Desarrollo de Software


4 semestre

Programa de la asignatura:
Estructura de datos

Unidad 1. Estructuras de datos


Clave:
Ingeniera:
15142419

TSU:
16142419

Universidad Abierta y a Distancia de Mxico

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Estructura de datos
Unidad 1. Estructura de datos

ndice
Unidad 1. Estructuras de datos .............................................................................................. 3
Presentacin de la unidad ..................................................................................................... 3
Propsitos ............................................................................................................................. 3
Competencia especfica......................................................................................................... 3
Temario de la unidad ............................................................................................................. 3
1. Estructura de datos ............................................................................................................ 4
1.1. Pilas ................................................................................................................................ 4
1.2. Listas .............................................................................................................................. 6
1.3. Colas .............................................................................................................................. 8
Cierre de la unidad .............................................................................................................. 10
Para saber ms ................................................................................................................ 11
Fuentes de consulta ............................................................................................................ 11

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Estructura de datos
Unidad 1. Estructura de datos

Unidad 1. Estructuras de datos


Presentacin de la unidad
En esta primera unidad conocers las tres principales estructuras de datos: pilas, colas y
listas. Para cada una de estas estructuras, conocers, comprenders y utilizars
adecuadamente las operaciones aplicables.
De esta manera, sers capaz de realizar ejercicios de programacin en los que apliques las
operaciones que se ejecutan sobre las estructuras mencionadas, stos estarn relacionados
con aplicaciones reales.

Propsitos
Al trmino de esta unidad logrars:

Emplear pilas, colas y listas, as como sus diferentes operaciones en programas con
aplicaciones reales haciendo uso de este tipo de estructuras.

Competencia especfica

Aplicar algoritmos para almacenar, eliminar y mostrar datos de forma segura, mediante
la utilizacin de las estructuras bsicas de la programacin.

Temario de la unidad
1. Estructuras de datos
1.1. Pilas
1.1.1. Generalidades
1.1.2. Creacin de una pila
1.1.3. Operaciones bsicas
1.2. Listas
1.2.1. Generalidades
1.2.2. Creacin de una lista
1.2.3. Operaciones bsicas
1.3. Colas
1.3.1. Generalidades
1.3.2. Creacin de una cola
1.3.3. Operaciones bsicas

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Estructura de datos
Unidad 1. Estructura de datos

1. Estructura de datos
Los datos simples, como ya lo has revisado en asignaturas previas como Fundamentos de
programacin, representan valores de tipo simple:
Como un nmero entero o real. En muchas situaciones se necesita, sin embargo, procesar
una coleccin de valores que estn relacionados entre s por algn mtodo, por ejemplo, una
lista de calificaciones, una serie de temperaturas medidas a lo largo de un mes, etctera. El
procesamiento de tales conjuntos de datos, utilizando datos simples, puede ser
extremadamente difcil y por ello la mayora de los lenguajes de programacin incluyen
caractersticas de estructuras de datos (Joyanes, 2010, p. 247).
Una estructura de datos se define como una coleccin de datos que pueden ser
caracterizados por su organizacin y las operaciones que se definen en ella (Joyanes, 2010,
p. 248).

1.1. Pilas
El primer tema que se revisar es el de pila. Una pila se puede definir como un contenedor
de objetos que se introducen y se sacan segn el principio conocido como LIFO (last in, first
- out) que significa, ltimo en entrar, primero en salir. Siempre es posible insertar objetos
en una pila; sin embargo, slo es posible sacar el objeto que se introdujo ms recientemente.
Las pilas son estructuras de datos fundamentales que se usan en muchas aplicaciones, como
puede ser cuando los navegadores de internet van guardando en una pila las direcciones de
los sitios recin revisados. Cuando un usuario visita un sitio nuevo, su direccin es introducida
para meterla en la pila de direcciones, luego el navegador permite que el usuario quite el sitio
recin visitado dando clic al botn atrs. Como se puede notar, son muchas las aplicaciones
de las pilas que se realizan de forma cotidiana en actividades informticas.
El nombre de pila se le da a esta estructura como una analoga con las mquinas servidoras
de platos de resorte en una cafetera o tambin por la forma como salen los dulces con el
despachador PEZ. Tambin se puede relacionar con una pila de libros o de monedas.

Pila de libros.
Tomada de http://pixabay.com/es/libroseducaci%C3%B3n-escuela-literatura-441866/

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Estructura de datos
Unidad 1. Estructura de datos

Pila de monedas.
Tomada de http://pixabay.com/es/logrobar-negocio-gr%C3%A1fico-moneda18134/

Una pila es un tipo de dato abstracto (TDA) que soporta dos mtodos fundamentales: push y
pop. Por su importancia, la estructura de datos pila se incluye como clase constructora en el
paquete java.util de Java.
Apyate en la bibliografa sugerida de la unidad para revisar los mtodos que se emplean en
las pilas, por ejemplo:
push (o): permite insertar, introducir o empujar un objeto en la parte superior de la pila.
Entrada: objeto
Salida: ninguna
pop (): sacar el objeto superior de la pila y regresarlo; se produce un error si la pila est vaca.
Entrada: ninguna
Salida: objeto

Tomada de
http://es.wikipedia.org/wiki/Pila_(inform%C3
%A1tica)#mediaviewer/File:Pila.svg

Para una pila tambin se definen mtodos de soporte:


size(): regresa la cantidad de objetos en la pila.
Entrada: ninguna
Salida: entero
isEmpty(): regresa un valor booleano que indica si la pila est vaca.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Estructura de datos
Unidad 1. Estructura de datos

Entrada: ninguna
Salida: booleana
top(): regresa el objeto superior de la pila sin sacarlo de ella, se produce un error si la pila est
vaca.
Entrada: ninguna
Salida: objeto
La implementacin de un tipo de dato abstracto en Java se hace en dos pasos. El primero es
la definicin de una interfaz de programacin de aplicacin Java o interfaz, solamente que
describe los nombres de los mtodos que soporta el TDA (tipo de dato abstracto) y cmo se
deben declarar y usar.
Revisa Goodrich, Tamassia, (2010, pp. 136-137), porque en este texto, podrs ver a travs
de ejemplos cmo se crea la interfaz en Java, el proceso de declaracin y uso de variables.
Tambin hace referencia a la forma de utilizar los mtodos que emplea la estructura de datos
pila.
Las pilas son aplicaciones importantes en el ambiente de ejecucin de los programas Java.
Un programa Java en ejecucin tiene una pila privada, llamada pila de mtodos Java, que se
usa para rastrear las variables locales y otra informacin importante sobre los mtodos, a
medida que se invocan durante la ejecucin. En Joyanes y Zahonero (2012, pp. 490-498)
encontrars cmo emplear este tipo de estructura para realizar aplicaciones cotidianas.
Tambin, podrs darte cuenta cmo este tipo de estructura queda inherente a la forma de
ejecucin de los programas en el lenguaje Java. Revisa las pginas que se te sealan.
Como has constatado, el tema de pilas es amplio y a la vez muy interesante, ya que con la
implementacin de las pilas en diferentes programas podrs mejorar la eficiencia de los
mismos, tambin podrs identificar la funcionalidad y en qu reas se han hecho aplicaciones
de las pilas.
No olvides el ejemplo del caso de los sitios web visitados por los usuarios; otro ejemplo lo
puedes verificar en los editores de texto, estos suelen tener una funcin llamada deshacer
(undo) que cancela las operaciones recientes de edicin, y hace regresar al documento a sus
estados anteriores. Esta operacin de deshacer se logra guardando los cambios de texto en
una pila.

1.2. Listas
El siguiente tipo de estructura que conocers es la lista. Una lista es una coleccin de nodos
que en conjunto forman un ordenamiento de forma lineal. El orden se determina como en el
juego infantil sigan al lder, porque cada nodo es un objeto compuesto que guarda una
referencia a un elemento y, una referencia llamada next (siguiente), a otro nodo.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Estructura de datos
Unidad 1. Estructura de datos

Se puede traer a la mente una lista de alumnos inscritos en un curso, una lista de productos
para hacer el mandado, etc.
La lista es el tipo ms general de estructura lineal donde las inserciones y eliminaciones se
realizan en cualquier punto de la lista, por esta razn se debe especificar dnde se requiere
que se haga la operacin. Sus operaciones bsicas son: creacin, destruccin, insercin,
eliminacin, consulta y verificacin de lista vaca.
Pudiera considerarse como una redundancia el hecho de tener un nodo que refiera a otro
nodo; sin embargo, la referencia next dentro de un nodo se puede considerar como un enlace
o apuntador hacia otro nodo. Pasar de un nodo a otro con una referencia next se llama salto
de apuntador. Al primer nodo de la lista se le llama cabeza (top) y al ltimo se le conoce como
fin de la lista.
Para que puedas conocer a detalle la forma como se conceptualiza la lista, cmo se agregan
elementos, se retiran, etc. es conveniente que revises el libro de Joyanes (2010).
Fundamentos de programacin, algoritmos, estructuras de datos y objetos, las pginas son
de la 440 a la 443.
Tambin debers revisar Joyanes y Zahonero (2012, pp. 500-512), en dicho texto
encontrars: cmo emplear este tipo de estructura para realizar aplicaciones cotidianas.
Podrs tambin darte cuenta de cmo este tipo de estructura queda inherente a la forma de
ejecucin de los programas en el lenguaje Java.
Es de vital importancia que consultes la fuente arriba citada para que puedas conocer a detalle
esta estructura de datos y, de esta manera, puedas establecer la diferencia en uso respecto
con otras estructuras como la pila, que fue el tema revisado anteriormente, as como la
estructura cola que es otra de las estructuras ms utilizadas.
Despus de haber revisado la bibliografa debers tener una idea clara del tema, as como
poder emplear las diferentes estructuras que conoces y conocers dependiendo del tipo de
problemas de desarrollo que se te presente.

Componentes de una lista


Tomada de yatarihuana2.blogspot.es

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Estructura de datos
Unidad 1. Estructura de datos

Una lista enlazada consta de un nmero de elementos y cada elemento tiene dos
componentes: una referencia al siguiente elemento de la lista y un valor que puede ser de
cualquier tipo.
Una lista enlazada requiere de las siguientes funciones:
Definir la clase nodo y referencia a nodo.
Inicializar o crear.
Insertar elementos en una lista.
Eliminar elementos de una lista.
Buscar elementos de una lista.
Recorrer una lista.
Comprobar si la lista est vaca.
Este tipo de estructura puede resultar un poco ms compleja de utilizar, lo recomendable es
que conozcas y sepas utilizar las diferentes estructuras de datos, as como la forma de
emplear adecuadamente los temas de las siguientes unidades como son los rboles y, con
base en tu experiencia, decidas qu conceptos utilizar para la resolucin de determinado
problema.
Las listas resuelven las situaciones mencionadas arriba; son, probablemente, la segunda
estructura de almacenamiento de propsito general ms comnmente utilizada, despus de
los arreglos.
Una lista es un tipo de estructura conveniente para usarse en muchos tipos de bases de datos
de propsito general. Tambin, puede remplazar a los arreglos como base para otras
estructuras de almacenamiento como pilas y colas.
La ventaja ms evidente de utilizar estructuras ligadas, es que permite optimizar el uso de la
memoria, porque no se desperdicie el espacio de localidades vacas.
Las listas son una estructura de datos bastante interesante; sin embargo, presentan algunas
desventajas, la ms grande es que deben ser recorridas desde su inicio para localizar un dato
particular. Es decir, no hay forma de acceder a algn dato de la lista en particular, como se
hara en un arreglo.

1.3. Colas
Para concluir con esta unidad a continuacin se tratar el tema de colas, que es una estructura
que consta solamente de dos operaciones: insercin (push) y eliminacin (pop). La funcin
push slo se puede realizar a travs de un extremo (frente) y la funcin pop slo se realiza
por el otro extremo (final).

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Estructura de datos
Unidad 1. Estructura de datos

Este tipo de estructura se conoce como FIFO (first in firstout), el recorrido se realiza sacando
el primer dato que se insert hasta llegar al extremo final.
Para entender este concepto se debe pensar en la cola (fila) que se hace para comprar las
tortillas, la fila en el banco o para comprar un boleto en el cine.

Fila para las tortillas, tambin conocida como cola de las tortillas.
Tomada de fotolog.com

Para el caso particular del trabajo con la estructura FIFO en primera instancia se compara
para saber si existe algn elemento en la cola, de no ser as, entonces se muestra un mensaje
que indica que la cola est vaca. De otra forma compara si Frente es mayor o igual a Final,
as simplemente hace un Recorrido lineal como los anteriores. De otra forma usar Max como
bandera para saber cundo empezar a contar de 0 a Final.
Para profundizar en el tema, revisa la obra de Goodrich, Tamassia (2010, pp. 140-142). En
dicho texto, encontrars de forma detallada cada uno de los conceptos que se han
mencionado: la forma de introducir elementos a cada estructura, sacar elementos de ella,
entre otros. La finalidad de que consultes estos temas es que te adentres en ellos y que
ubiques las similitudes y diferencia entre cada estructura, as como la forma adecuada de
utilizar cada una de las estructuras de datos que has revisado en la unidad.
Revisa el documento de Joyanes y Zahonero (2012, pp. 520-522) donde encontrars cmo
emplear este tipo de estructura para realizar aplicaciones cotidianas. Podrs tambin darte
cuenta cmo este tipo de estructura queda inherente a la forma de ejecucin de los programas
en el lenguaje Java. Revisa las pginas que se te indican.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

Estructura de datos
Unidad 1. Estructura de datos

Estructura de datos cola


Tomada de programacionfacil.com

Como puedes observar, la estructura de datos conocida como cola puede utilizarse para
ayudar a resolver situaciones de nuestra vida cotidiana, por ejemplo, cuando se enva a
imprimir un documento desde una red de computadoras, o cuando hay una conversacin en
un chat, etctera.

Cierre de la unidad
En esta unidad se abordaron las diferentes estructuras de datos: pilas, listas y colas. Como
ya se mencion es primordial que te adentres en cada uno de los temas de la unidad a travs
de la consulta de las diferentes fuentes indicadas, as como tambin es necesario que leas
detalladamente las actividades que se te han asignado por unidad y las resuelvas a cabalidad
para poder tener conocimiento profundo de las estructuras de datos, pues stas son
fundamentales en el rea de la programacin, adems de que te permitirn asimilar de mejor
manera los temas de las unidades posteriores.
Por lo anterior, es necesario que conozcas bien en qu consiste cada una de las estructuras,
cmo se utilizan, qu mtodos se realizan en cada una, as como en qu casos puedo
emplearlas. Adems, comprender bien cada estructura te permitir abordar de una manera
ms sencilla los temas de las siguientes unidades.
Resultado del conocimiento y comprensin de los temas pilas, colas y listas, podrs realizar
programas en los que apliques estos conceptos avanzados de programacin, es decir, podrs

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

10

Estructura de datos
Unidad 1. Estructura de datos

realizar programas de aplicacin para el da a da, como lo son: una cola de impresin, una
lista de correo electrnico, entre otras aplicaciones.

Para saber ms
Existen diversas fuentes que puedes consultar para ampliar tus conocimientos. Por ejemplo:

http://www.utim.edu.mx/~svalero/docs/ED_Java.pdf
En el documento PDF al que podrs acceder en la liga arriba anotada, encontrars de
forma breve, pero concisa, los conceptos bsicos de las estructuras de datos, sobre
todo, a travs de imgenes que ilustran los componentes y comportamiento de los
mismos; asimismo, podrs conocer cmo se utilizan dichas estructuras.

http://www.grycap.upv.es/gmolto/docs/eda/EDA_Tema_1_gmolto.pdf
En esta fuente encontrars conceptos de Java para utilizar en las estructuras de datos.

Es importante que para complementar tu conocimiento de sta, y cualquiera otra de tus


materias, consultes diferentes fuentes; las arriba mencionadas son slo algunas, es
recomendable, si buscas otras fuentes en internet, que te cerciores de que stas son
fidedignas.

Fuentes de consulta

Goodrich, T. (2010). Estructura de datos y algoritmos en Java. Mxico: CECSA.

Joyanes. (2010). Fundamentos de programacin, algoritmos, estructuras de datos y


objetos. Espaa: McGraw-Hill.

Joyanes y Zahonero. (2012). Programacin en Java 2, algoritmos, estructuras de datos


y programacin orientada a objetos. Espaa: McGraw-Hill.

Ciencias Exactas, Ingeniera y Tecnologa | Desarrollo de Software

11

S-ar putea să vă placă și