Está en la página 1de 13

Estructura de Datos

Unidad 1. Estructuras de datos




1

Ingeniera en Desarrollo de software
Cuatrimestre 06



Asignatura:
Estructuras de Datos





Clave: 160920621/150920621









Estructura de Datos
Unidad 1. Estructuras de datos


2


ndice

Presentacin de la unidad ___________________________________________________ 3
Propsitos de la unidad _____________________________________________________ 3
Competencia especfica ____________________________________________________ 3
Temario de la unidad _______________________________________________________ 3
Tema 1. Estructura de datos _________________________________________________ 4
Tema 1.1. Pilas ___________________________________________________________ 4
Tema 1.2. Listas __________________________________________________________ 7
Tema 1.3. Colas __________________________________________________________ 9
Cierre de la unidad _______________________________________________________ 12
Para saber ms ________________________________________________________ 12
Fuentes de consulta ______________________________________________________ 13






















Estructura de Datos
Unidad 1. Estructuras de datos


3

Presentacin de la unidad

En esta primera unidad conocers tres conceptos importantes acerca de estructuras de
datos que son: pilas, colas y listas.
Para cada uno de estos conceptos, conocers, comprenders y utilizars adecuadamente
sus mtodos fundamentales, as como sus mtodos de soporte.

De esta manera, sers capaz de realizar ejercicios de programacin donde apliques las
operaciones que se ejecutan sobre las estructuras mencionadas. Los ejercicios de
programacin estarn relacionados con aplicaciones reales.

Propsitos de la unidad

Al finalizar la unidad sers capaz de 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 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








Estructura de Datos
Unidad 1. Estructuras de datos


4

Tema 1. Estructura de datos

Para comenzar con los conceptos bsicos de la Estructura de datos, forma de trabajar, etc.
Abre el archivo de Actividades de la unidad y dirgete a la Actividad 1. Foro de la asignatura
donde encontrars las instrucciones para ingresar al foro que te permitir realizar preguntas,
hacer comentarios, entre otras cosas. Una vez ingreses al foro, regresa a la lectura de tu
unidad. No olvides atender a las indicaciones en ella se te presentan.

As mismo, ingresa al archivo Actividades de la unidad y realiza la Actividad 2.
Identificacin de la relacin entre algoritmos y estructuras de datos. La cual tiene como
propsito que identifiques las Estructura de datos.

Puedes buscar estas definiciones tanto en las fuentes proporcionadas en tu unidad, as
como en fuentes complementarias, como lo son libros, internet, journals, etc.
Luego de realizar las actividades y consultar los textos, es necesario que formes un
concepto propio acerca de los diferentes trminos utilizados en las estructuras de datos:
pilas, colas y listas.

Tema 1.1. Pilas

El primer tema que revisaremos 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 podemos notar,
son muchas las aplicaciones de las pilas que realizamos de forma cotidiana en actividades
informticas.

La Actividad 3. Ejemplificacin con un caso cotidiano del uso de pilas, colas y listas, en el
inciso 1, te pide que anotes un ejemplo de la vida cotidiana, donde se utilice el concepto de
pilas, durante la lectura de esta unidad podrs encontrar algunas respuestas, sin embargo,
es recomendable que busques otras ms ya sea en las fuentes sugeridas o en fuentes
externas.

Las actividades 3, 4 y 5, se trabajarn a la par de los temas 1.1. Pilas, 1.2 Listas y 1.3.
Colas, por lo tanto, las actividades las comenzars a trabajar desde este momento; no
obstante, slo las podrs concluir hasta terminar los 3 temas.



Estructura de Datos
Unidad 1. Estructuras de datos


5

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 se despachan los dulces
con el despachador PEZ. Tambin podemos ubicarla como una pila de libros o de monedas.


Pila de libros



Pila de monedas



Pila de platos





Despachador de dulces PEZ
MR.


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.

En la Actividad 4. Resolucin de un programa donde se cree una pila, una cola y una lista,
especficamente el inciso 1, se te indica que tendrs que programar los mtodos que se
emplean en las pilas.

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.


Estructura de Datos
Unidad 1. Estructuras de datos


6

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


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.
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), pues, en este texto, podrs ver a travs
de ejemplos como 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. Despus de conocer estos conceptos y verlos ejemplificados, podrs llevarlos a
la prctica a travs de las actividades que se plantean en el documento del mismo nombre;
adems podrs ubicar los mtodos que se aplican en la estructura pila e identificars, cmo
ilustrar una pila a travs de un diagrama o dibujo, entre otras cosas que te permitirn
diferenciar con respecto a otras estructuras de datos.



Estructura de Datos
Unidad 1. Estructuras de datos


7

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, 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
implementando 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.

En la Actividad 5. Aplicacin de las operaciones bsicas de una estructura de datos, inciso
1, aplicars el cdigo que realizaste en la Actividad 4, dndole un giro orientado hacia
alguna aplicacin real de una pila, en la lectura de esta Unidad podrs encontrar algunas
opciones, aunque t puedes sugerir y optar por la que ms te convenga.

Tema 1.2. Listas

El siguiente tipo de estructura que conocers ser 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.
Podemos traer a nuestra 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. As mismo, 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.



Estructura de Datos
Unidad 1. Estructuras de datos


8

Para que puedas conocer a detalle la forma como se conceptualiza la lista, cmo se
agregan elementos, se retiran, etc., es conveniente que revises Joyanes (2010).
Fundamentos de programacin, Algoritmos, Estructuras de datos y objetos. Las pginas que
debers revisar son de la 440 a la 443.

Tambin debers revisar Joyanes et al (2012, pp. 500-512), en dicho texto 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 sealan.

Es de vital importancia que revises la fuente arriba citada para que puedas conocer a detalle
esta estructura de datos y, de esta manera, puedas establecer la diferencia en uso con
respecto a otras estructuras como: la pila, que fue el tema anterior revisado, as como la
estructura cola que es otra de las estructuras ms utilizadas.

Luego 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
Imagen recuperada de: yatarihuana2.blogspot.es

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.



Estructura de Datos
Unidad 1. Estructuras de datos


9

Este tipo de estructura puede resultar un poco ms complejo 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. Para que conceptualices el trmino lista se puede utilizar la analoga con listas
que utilices en tu da a da, revisa la Actividad 3. Ejemplificacin con un caso cotidiano del
uso de pilas, colas y listas. En el inciso 2, se te pide que anotes un ejemplo de la vida
cotidiana donde se utilice el concepto de listas, durante la lectura de esta unidad podrs
encontrar algunas respuestas, sin embargo, es recomendable que busques otras ms ya
sea en las fuentes sugeridas o en externas.

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. No pierdas de vista lo sealado, pues,
ello te servir para realizar la Actividad 4. Resolucin de un programa donde se cree una
pila, una cola y una lista, especficamente el inciso 2, donde se te indica que tendrs que
programar los mtodos que se emplean en las listas. No olvides apoyarte de la bibliografa
sugerida, en las lneas siguientes de lectura de esta unidad, pues en ella revisars podr ver
qu mtodos se emplean en las listas.

La ventaja ms evidente de utilizar estructuras ligadas, es que permite optimizar el uso de la
memoria, pues no desperdiciamos el espacio de localidades vacas.

Ahora entra a la Actividad 5. Aplicacin de las operaciones bsicas de una estructura de
datos, inciso 2; aplicars el cdigo que realizaste en la Actividad 4, dndole un giro
orientado hacia alguna aplicacin real de una lista. En la lectura de esta unidad podrs
encontrar algunas opciones, aunque t puedes sugerir y optar por otra opcin, luego de la
realizacin de la actividad podrs darte cuenta de que las listas son una estructura de datos
bastante interesante; sin embargo, presenta algunas desventajas, la ms grande, de las
listas, 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.

Tema 1.3. Colas

Para concluir con esta unidad trataremos el tema de colas, se trata de una estructura que
consta solamente de 2 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).



Estructura de Datos
Unidad 1. Estructuras de datos


10

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 pensemos en la cola (fila) que hacemos para comprar las
tortillas, la fila en el banco o la que hacemos para comprar un boleto en el cine. Para
ampliar estas analogas del concepto de colas con filas o colas de la vida cotidiana, abre la
Actividad 3. Ejemplificacin con un caso cotidiano del uso de pilas, colas y listas. En el inciso
3, te indica que anotes un ejemplo de la vida cotidiana donde se utilice el concepto de colas,
durante la lectura de esta unidad podrs encontrar algunas respuestas, sin embargo, es
recomendable que busques otras ms ya sea en las fuentes sugeridas o en otras externas.
Procura ofrecer analogas novedosas e interesantes.



Fila para las tortillas, tambin conocida como cola de las tortillas.
Imagen recuperada 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 llevar a la
prctica estos conceptos, revisa la Actividad 4. Resolucin de un programa donde se cree
una pila, una cola y una lista, especficamente el inciso 3, te indica que tendrs que
programar los mtodos que se emplean en las colas, no olvides apoyarte de la bibliografa
sugerida, en las lneas siguientes de lectura de esta unidad podrs ver qu mtodos se
emplean en las colas.

Para profundizar en el tema, revisa Goodrich, Tamassia (2010, pp. 140-142). En dicho
texto, revisars de forma detallada cada uno de los conceptos que te he 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.



Estructura de Datos
Unidad 1. Estructuras de datos


11

Revisar Joyanes et al (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 sealan.



Estructura de datos cola
Imagen recuperada 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 enviamos a
imprimir un documento desde una red de computadoras, o cuando nos encontramos en una
conversacin en un chat, etc. Para ampliar estos casos donde se aplican las colas, revisa la
Actividad 5. Aplicacin de las operaciones bsicas de una estructura de datos, inciso 3,
aplicars el cdigo que realizaste en la unidad 4, dndole un giro orientado hacia alguna
aplicacin real de una cola, en la lectura de esta unidad podrs encontrar algunas opciones,
aunque t puedes sugerir y optar por otra opcin, al trmino de esta actividad, habrs
realizado un programa que incluso podras aplicar en tu mbito laboral, no olvides regresar a
la lectura para conocer el cierre de la unidad.

Una vez que terminaste de revisar los temas de la unidad, concluye: la Actividad 3.
Ejemplificacin con un caso cotidiano del uso de pilas, colas y listas; Actividad 4. Resolucin
de un programa donde se cree una pila, una cola y una lista; y Actividad 5. Aplicacin de las
operaciones bsicas de una estructura de datos.

Posterior a concluir tus actividades, realiza la Evidencia de aprendizaje de la unidad, pues,
sta es la actividad integradora de lo que consultaste y realizaste en la unidad.


Estructura de Datos
Unidad 1. Estructuras de datos


12

Cierre de la unidad

En la presente unidad abordaste las diferentes estructuras de datos: pilas, listas y colas.
Como ya se te 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 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 de pilas, colas y listas, podrs
realizar programas donde apliques estos conceptos avanzados de programacin, es decir,
podrs 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.fismat.umich.mx/computacion/computacion2/estructuras/notasEstructuras.pdf
Esta liga te llevar a un documento de extensin PDF. Este archivo contiene temas muy
completos en lo que a estructura de datos se refiere; contiene, adems, ejemplos que
explican comportamientos de las diferentes estructuras de datos empleando lneas de
cdigo y lenguaje Java.

http://www.utim.edu.mx/~svalero/docs/ED_Java.pdf
En el documento PDF al que podrs acceder en la liga arriba anotada, podrs encontrar de
una 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;
podrs conocer cmo se utilizan dichas estructuras.

http://www.grycap.upv.es/gmolto/docs/eda/EDA_Tema_1_gmolto.pdf
En esta otra 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.



Estructura de Datos
Unidad 1. Estructuras de datos


13

Fuentes de consulta

Goodrich/, Tamassia (2010). Estructura de Datos y Algoritmos en Java. Mxico:
CECSA
Joyanes (2010). Fundamentos de programacin, Algoritmos, Estructuras de datos y
objetos. Espaa: Mc Graw Hill
Joyanes & Zahonero (2012). Programacin en Java 2, Algoritmos, estructuras de
datos y programacin orientada a objetos. Espaa: Mc Graw Hill

También podría gustarte