Вы находитесь на странице: 1из 8

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA DE MXICO

INGENIERA EN DESARROLLO DE SOFTWARE


GRUPO: (DS-DEDA-1601-B1-001)

ESTRUCTURA DE DATOS
IVONNE ENRQUEZ CASTILLO

ALUMNO: MARIO OSCAR RAMREZ CORTS


AL10506012
Actividad 1. Relacin de algoritmos y estructuras de datos

ENERO 2016
Esta actividad te permitir identificar las principales estructuras de datos y establecer las diferencias entre ellas, a partir de
su funcionamiento y aplicaciones. Para lograr lo anterior, realiza lo siguiente:
1. Investiga y define qu es un algoritmo y una estructura de datos. Utiliza fuentes confiables y que correspondan con el
campo de conocimiento.
2. A partir de la informacin investigada, describe las tres estructuras de datos ms conocidas: pila, cola y lista. Incluye un
ejemplo de cmo se aplica cada una en un caso cotidiano. Nota: los ejemplos deben ser breves y diferentes a los incluidos
en el material de apoyo de la asignatura.
3. Finalmente, redacta una breve conclusin en torno a la relacin que existe entre un algoritmo y una estructura de datos.
4. Guarda el desarrollo de tu actividad con el nombre DEDA_U1_A2_XXYZ.
Sustituye las XX por las dos primeras letras de tu primer nombre, la Y por la inicial de tu primer apellido y la Z por la inicial
de tu segundo apellido.
5. Consulta los Criterios de evaluacin de actividades de la unidad 1 para verificar que el desarrollo de tu actividad cumple
con los criterios sealados.
6. Enva el archivo a tu Docente en lnea para recibir retroalimentacin mediante la herramienta Tareas

Un algoritmo es un mtodo para resolver un problema. La resolucin de un


problema exige el diseo de un algoritmo que resuelva el problema propuesto.
Entonces un algoritmo es la secuencia ordenada de pasos que conducen a la
solucin de un problema dado. Joyanes adems menciona las caractersticas
fundamentales que los algoritmos deben cumplir:
-

Un algoritmo debe ser preciso e indicar el orden de realizacin de cada


paso.
Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces se
debe obtener el mismo resultado cada vez.
Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en
algn momento; o sea, debe tener un nmero finito de pasos.

La definicin de un algoritmo debe describir tres partes: entrada, proceso y salida.


Por otro lado, Joyanes describe las estructuras de datos como coleccines de
datos que se pueden caracterizar de acuerdo a su organizacin y a las
operaciones que se definen en ella, las estructuras de datos tienen una gran
importancia en los sistemas de computadora.
Clasificando los datos podemos definir dos categoras:
1. Los datos simples simples que incluyen a los subgrupos estndar (entero,
real, carcter y lgico) y definido por el programador o no estndar
(subrango y enumerativo).
2. Los datos estructurados, que tienen dos subgrupos, los estticos (arrays,
registros, ficheros, conjuntos y cadenas) y los dinmicos (listas, pilas y
colas, listas enlazadas, rboles y grafos)
Las estructuras de datos dinmicos no tienen las limitaciones o restricciones en el
tamao de memoria ocupada que son propias de las estructuras estticas.
Mediante el uso de un tpo de datos especifico denominado puntero, es posible
construir estructuras de datos dinmicas que son soportadas por la mayora de los
lenguajes, ofrecen soluciones eficaces y efectivas en la solucin de problemas
complejos.
Las estructuras dinmicas por excelencia son las listas enlazadas, pilas, colas-,
rboles binarios, rbol-b, bsqueda binaria y grafos.
Una idea que tambin maneja Joyanes y que por cierto aclara mejor lo que son
estructuras dinmicas de datos, es la de que estas crecen a medida que se
ejecuta un programa yo agregara que adems de crecer tambin decrecen ya
que son una coleccin de elementos (nodos) que normalmente son registros, se
pueden diferenciar de los arrays porque estos ltimos son definidos desde un

inicio en su estructura y tamao y al correr el programa ya no cambia ni su


estructura ni su tamao, solo se van consultando o leyendo. Una estructura
dinmica de datos se contrae y se expande durante la ejecucin del programa.
Las estructuras dinmicas se pueden dividir en 2 grupos:
1. Lineales. En las que podemos encontrar:
a. Pilas
b. Colas
c. Listas enlazadas
2. No lineales. En estas se encuentran:
a. rboles
b. Grafos
A continuacin definir las Lineales:
Listas. Es un conjunto de elementos de un tipo dado que pueden cariar en
nmero y donde cada elemento tiene un nico predecesor y un nico sucesor
siguiente, excepto el primero y ltimo de la lista. Los elementos de una lista lineal
se almacenan normalmente contiguos un elemento detrs de otro- en posiciones
consecutivas de la memoria.
Si por ejemplo hablamos de las sucesivas entradas de una gua o directorio
telefnico, estn en lneas sucesivas, excepto en las partes superior e inferior de
cada columna. Una lista lineal se almacena en la memoria principal de una
computadora en posiciones sucesivas de memoria; si se guardan estos datos en
una cinta magntica, los elementos sucesivos se presentan en sucesin en la
cinta. A este tipo de almacenamiento se le conoce como almacenamiento
secuencial.
Las lneas definidas se denominan contiguas. Las operaciones que pueden ser
realizadas con las listas lineales contiguas son las siguientes:
1.
2.
3.
4.
5.
6.
7.
8.

Insertar, eliminar o localizar un elemento.


Determinar el tamao nmero de elementos- de la lista.
Recorrer la lista para localizar un determinado elemento.
Clasificar los elementos de la lista en orden ascendente o descendente.
Unir dos o ms listas en una sola.
Dividir una lista en varias sub listas.
Copiar una lista.
Borrar la lista.

Ejemplo: el director de un hotel desea registrar el nombre de cada cliente a


medida de su llegada al hotel, junto con el numero de habitacin que ocupa el

antiguo libro de entradas- tambin desea disponer en cualquier momento de una


lista de sus clientes por orden alfabtico.
Ya que no es posible registrar los clientes alfabtica y cronolgicamente en la
misma lista, se necesita, o bien listas alfabticas independientes o bien aadir
punteros a la lista existente con lo que solo se usar una sola lista. El mtodo
manual en el libro requera muchos cruces y reescrituras; sin embargo una
computadora mediante un algoritmo adecuado, lo realizara fcilmente.

Pilas. En ingls stack, es un tipo especial de lista lineal en la que la insercin y


borrado de nuevos elementos se realiza solo por un extremo que se denomina
cima o tope (top).
La pila es una estructura con numerosas analogas en la vida real; una pila de
platos, una pila de monedas, una pila de cajas de zapatos, una pila de camisas,
una pila de bandejas, etc. Debido a que las operaciones de insertar y eliminar
(push y pop) se hacen por un solo extremo (arriba), los elementos solo pueden
eliminarse en orden inverso al que se inserta en la pila. El ltimo elemento que se
pone en la pila es el primero que se puede sacar, por ello a estas estructuras se
les conoce por el nombre de LIFO (last in, first out), ltimo en entrar, primero en
salir. En la siguiente imagen tomada de Yojanes se puede ver la forma en que se
pueden representar grficamente las pilas.

Ejemplo. Las pilas son utilizadas ampliamente para solucionar una amplia
variedad de problemas, se usan en compiladores, sistemas operticos y en
programas de aplicacin, una aplicacin interesante es las llamadas a
subprogramas; cuando dentro de un programa se realizan llamadas a
subprogramas, el programa principal debe recordar el lugar donde se hizo la
llamada, de modo que pueda retomar all cuando el subprograma se haya
terminado de ejecutar. Suponiendo que tenemos 3 subprogramas llamados A, B y
C y supongamos que A invoca a B y B a C, entonces B no termina su trabajo hasta
que C haya terminado y devuelto su control a B. De modo similar, A es el primero
que arranca su ejecucin, pero es el ltimo que termina tras la terminacin y
retorno de B.
Esta operacin se consigue disponiendo las direcciones de retorno en una pila.

Cuando un subprograma termina, debe retomar a la direccin siguiente a la


instruccin que le llam (llamar_a). cada vez que se invoca un subprograma, la
direccin siguiente (x, y o z) se introduce en la pila. El vaciado de la pila se
realizar por los sucesivos retornos, decrementndose el punto de la pila queda
libre siempre apuntando ala siguiente direccin retorno.

Las Colas. Son otro tipo de estructura de dato lineal similar a las pilas,
diferencindose de ellas en el modo de insertar y eliminar elementos. Una cola
(queue) es una estructura lineal de datos.
var array {1..n} de <tipo_dato> : C, en el que las eliminaciones se realizan al
principio de la lista, frente(f) y las inserciones se realizan en el otro extremo,
final(r). en las colas el elemento que entr primero, tambin saldr primero, por

ello se le conoce como lista FIFO (first in, first out). La principal diferencia con las
pilas radica en la manera de entrada y salida de datos; en las colas, las colas, las
inserciones se realizan al final de la lista y no al principio, por ello las colas se
usan para almacenar datos que necesitan ser procesados segn el orden de
llegada

Las colas se pueden representar como estructuras dinmicas de datos o como


arreglos.
Las operaciones que se pueden realizar con una cola son:

Acceder al primer elemento de la cola.


Aadir un elemento al final de la cola.
Eliminar el primer elemento de la cola.
Vaciar la cola.
Verificar el estado de la cola

Ejemplo. En la vida real se tienen ejemplos numerosos de colas: la cola de un


autobs, la cola de un cine, etc. En todas ellas el primer elemento que llega es el
primero que sale. En informtica existen tambin numerosas aplicaciones de
colas. Por ejemplo, en un sistema de tiempo compartido suele haber un
procesador central y una serie de perifricos compartidos: discos, impresoras, etc.
Los recursos se comparten por los diferentes usuarios y se utiliza una cola para
almacenar los programas o peticiones de los usuarios que esperan su turno de
ejecucin

Conclusiones. Los algoritmos son procedimientos estructurados por medio de


pasos que despus pueden escribirse en lenguaje mquina con la finalidad de
resolver problemas. Las estructuras de datos pueden ser estticas como los
arrays o dinmicas como las listas. La relacin entre un algoritmo y las estructuras
de datos est en la resolucin de problemas, el algoritmo se compone integra e
implementa las estructuras de datos para que pueda ser seguido de una manera
clara y sin confusin.
Bibliografa
Aguilar, L. J. (2003). Fundamentos de programacin: Algoritmos, Estructuras de
datos y Objetos. tercera Edicin. Espaa: MCGRAW-HILL / INTERAMERICANA
DE ESPAA.

Вам также может понравиться