Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Deda U1 A1

Descargar como doc, pdf o txt
Descargar como doc, pdf o txt
Está en la página 1de 9

Actividad 1. Relacin de algoritmos y estructuras de datos.

Universidad Abierta y a Distancia de Mxico


Facilitador
Leticia lvarez Castillo
Asignatura
Estructura de Datos
Actividad 1. Relacin de algoritmos y estructuras
de datos. Unidad 1.
Estudiante
Jos Guadalupe Mndez Uh
Matrcula
ES1410900401
Grupo
DS-DEDA-1502S-B1-004

Actividad 1. Relacin de algoritmos y estructuras de datos.


*Investiga y define qu es un algoritmo y una estructura de datos.
Algoritmo
Es un conjunto de pasos lgicos y estructurados que nos permiten dar solucin an
problema. Un algoritmo cumple cinco importantes condiciones:
1.- Finitud: un algoritmo tiene que acabar siempre tras un nmero finito de pasos.
2.- Definibilidad: cada paso de un algoritmo debe definirse de modo preciso; las acciones a
realizar han de estar especificadas para cada caso rigurosamente y sin ambigedad.
3.- Entrada: un algoritmo tiene cero o ms entradas, es decir, cantidades dadas inicialmente
antes de iniciar el algoritmo. Estas entradas de toman de conjuntos especificados de
objetos.
4.- Salida: un algoritmo tiene una o ms salidas, es decir, cantidades que tienen una relacin
especifica con las entradas.
5.- Efectividad: por lo general, se pretende que un algoritmo sea efectivo. Esto significa que
todas las operaciones a realizar en el algoritmo deben ser lo bastante bsicas para poder, en
principio, ser efectuadas de modo exacto y en un lapso de tiempo finito por un hombre
mediante papel y lpiz.
Estructura de datos
Una estructura de datos es una agregacin de tipos de datos compuestos y atmicos en un
conjunto con relaciones bien definidas. Una estructura de datos define la organizacin e
interrelacionamiento de estos, y un conjunto de operaciones que se pueden realizar sobre l.
Las estructuras de datos se pueden clasificar en lineales y en no lineales.
Existen diversas estructuras de datos que se aplican a los distintos lenguajes de
programacin, las ms comunes de utilizar son: pilas, colas y listas.

Actividad 1. Relacin de algoritmos y estructuras de datos.


*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.
Lista enlazada
Es una coleccin o secuencia de elementos dispuestos uno detrs de otro, en la que cada
elemento se conecta al siguiente elemento por un enlace o referencia. La idea bsica
consiste en construir una lista cuyos elementos, llamados nodos, se componen de dos partes
(campos): la primera parte contiene la informacin y es, por consiguiente, un valor de un
tipo genrico (denominado Dato, TipoElemento, Info, etc.), y la segunda parte es una
referencia (denominado enlace o sgte) que apunta (enlaza) al siguiente elemento de la lista.

Imagen tomada del libro Estructura de datos en Java

La representacin grfica ms extendida es aquella que utiliza una caja (un rectngulo) con
dos secciones en su interior. En la primera seccin se escribe el elemento o valor del dato, y
en la segunda seccin, el enlace o referencia mediante una flecha que sale de la caja y
apunta al nodo siguiente.

Imagen tomada del libro Estructura de datos en Java. Listas enlazadas (representacin grfica tpica).

Clasificacin de listas enlazadas


Las listas se pueden dividir en cuatro categoras:
Listas simplemente enlazadas: Cada nodo (elemento) contiene un nico enlace que lo
conecta al nodo siguiente o nodo sucesor. La lista es eficiente en recorridos directos
(adelante).
Listas doblemente enlazadas: Cada nodo contiene dos enlaces, uno a su nodo predecesor
y otro a su nodo sucesor. La lista es eficiente tanto en recorrido directo (adelante) como
en recorrido inverso (atrs).

Actividad 1. Relacin de algoritmos y estructuras de datos.


Lista circular simplemente enlazada: Una lista enlazada simplemente en la que el ltimo
elemento (cola) se enlaza al primer elemento (cabeza) de tal modo que la lista puede ser
recorrida de modo circular (en anillo).
Lista circular doblemente enlazada: Una lista doblemente enlazada en la que el ltimo
elemento se enlaza al primer elemento y viceversa. Esta lista se puede recorrer de modo
circular (en anillo) tanto en direccin directa (adelante) como inversa (atrs).
Operaciones en listas enlazadas
La implementacin del TAD Lista requiere, en primer lugar, declarar la clase Nodo, en la
que se combinarn sus dos partes: el dato (entero, real, doble, carcter o referencias a
objetos) y un enlace. Adems, la clase Lista con las operaciones y el atributo con la cabeza
de la lista. Las operaciones tendrn las siguientes funciones:
Inicializacin o creacin.
Insertar elementos en la lista.
Eliminar elementos de la lista.
Buscar elementos de la lista.
Recorrer la lista enlazada.
Comprobar si la lista est vaca.
-Las listas, las podemos ejemplificar con sucesos cotidianos como:

Actividad 1. Relacin de algoritmos y estructuras de datos.


Pilas
Una pila (stack) es una coleccin ordenada de elementos a los cuales slo se puede acceder
por un nico lugar o extremo de la pila. Los elementos se aaden o se quitan (borran) de la
pila slo por su parte superior (cima). Almacena y recupera sus elementos atendiendo a un
orden estricto. Las pilas se conocen tambin como estructuras LIFO (Last-in, first-out,
ltimo en entrar primero en salir).
Las operaciones usuales en la pila son Insertar y Quitar. La operacin Insertar (push) aade
un elemento en la cima de la pila, y la operacin Quitar (pop) elimina o saca un elemento
de la pila.

Imagen tomada del libro Estructura de datos en Java. Poner y quitar elementos de la pila.

Una pila puede estar vaca (no tiene elementos) o llena. Si un programa intenta sacar un
elemento de una pila vaca, se producir un error, una excepcin, debido a que esa
operacin es imposible; esta situacin se denomina desbordamiento negativo (underflow).
Por el contrario, si un programa intenta poner un elemento en una pila llena, se produce un
error, una excepcin, de desbordamiento (overflow) o rebosamiento. Para evitar estas
situaciones se disean mtodos que comprueban si la pila est llena o vaca.
Las operaciones que sirven para definir una pila y poder manipular su contenido son las
siguientes (no todas ellas se implementan al definir una pila):
Tipo de dato: Dato que se almacena en la pila.
Operaciones
Crear Pila: Inicia.
Insertar (push): Pone un dato en la pila.
Quitar (pop): Retira (saca) un dato de la pila.
Pila vaca: Comprueba si la pila no tiene elementos.
Pila llena: Comprueba si la pila est llena de elementos.
Limpiar pila: Quita todos sus elementos y deja la pila vaca.
Cima Pila: Obtiene el elemento cima de la pila.
Tamao de la pila: Nmero de elementos mximo que puede contener la pila.

Actividad 1. Relacin de algoritmos y estructuras de datos.


-Las pilas, las podemos ejemplificar con sucesos cotidianos como:

Colas
Una cola es una estructura de datos que almacena elementos en una lista y permite acceder
a los datos por uno de los dos extremos de la lista. Los elementos se eliminan (se quitan) de
la cola en el mismo orden en que se almacenan y, por consiguiente, una cola es una
estructura de tipo FIFO (first-in, firs-out, primero en entrar-primero en salir o bien primero
en llegar-primero en ser servido).

Imagen tomada del libro Estructura de datos en Java. Una cola.

Las operaciones usuales en las colas son Insertar y Quitar. La operacin Insertar aade un
elemento por el extremo final de la cola, y la operacin Quitar elimina o extrae un elemento
por el extremo opuesto, el frente o primero de la cola. La organizacin de elementos en
forma de cola asegura que el primero en entrar es el primero en salir.
Las operaciones que sirven para definir una cola y poder manipular su contenido son las
siguientes:
Tipo de dato: Elemento que se almacena en la cola.
Operaciones
CrearCola: Inicia la cola como vaca.
Insertar: Aade un elemento por el final de la cola.

Actividad 1. Relacin de algoritmos y estructuras de datos.


Quitar: Retira (extrae) el elemento frente de la cola.
Cola vaca: Comprueba si la cola no tiene elementos.
Cola llena: Comprueba si la cola est llena de elementos.
Frente: Obtiene el elemento frente o primero de la cola.
Tamao de la cola: Nmero de elementos mximo que puede contener la cola.
En una cola, al igual que en una pila, los datos se almacenan de un modo lineal y el acceso
a los datos slo est permitido en los extremos de la cola.

Imagen tomada del libro Estructura de datos en Java. Operaciones Insertar y Quitar en una cola.

-Las colas, las podemos ejemplificar con sucesos cotidianos como:

Colas para adquirir un


producto o servicio

Actividad 1. Relacin de algoritmos y estructuras de datos.


Conclusin
Los algoritmos, nos ayudan a disear soluciones para los distintos problemas que lo
requieran. Las estructuras de control, nos permiten gestionar (organizar, eliminar, insertar,
buscar, etc.) los datos de distintas formas en los distintos lenguajes de programacin, las
ms comunes son las listas, las pilas y las colas; cada una, posee su propia metodologa de
desarrollo. Los algoritmos y las estructuras de control, trabajan en conjunto para el diseo
(con el algoritmo), desarrollo (a travs de las estructuras de control) e implementacin de
un software que permitir dar solucin a un problema en especfico.
Los algoritmos, muestran los pasos a seguir y las estructuras de control, permiten gestionar
de la mejor manera, los datos con los que se trabajaran. Para seleccionar la estructura de
control con la que trabajaremos, tenemos que tener en cuenta las necesidades con respecto
al software que se desarrollara y al problema en cuestin.

Actividad 1. Relacin de algoritmos y estructuras de datos.


Fuentes de consulta
*Joyanes Aguilar Luis, Zahonero Martnez Ignacio. (2008). Estructuras de datos en java.
Mc Graw Hill.
Disponible:
http://www.freelibros.org/programacion/estructuras-de-datos-en-java-luisjoyanes-aguilar-y-ignacio-zahonero-martinez.html
*E. Knuth Donald. (Abril de 2002). Algoritmos fundamentales. Editorial Revert, S.A.
Volumen 1.
Disponible:
https://books.google.es/books?
id=YrUtMCo8UnYC&pg=PA5&dq=que+es+un+algoritmo&hl=es&sa=X&ved=0CB4Q6A
EwAGoVChMI56S1w57_xgIVzAaSCh3aggQa#v=onepage&q=que%20es%20un
%20algoritmo&f=false
*Las imgenes utilizadas, fueron obtenidas de Google imgenes.

También podría gustarte