Estructura de Datos 1
-
Upload
roberto-vega -
Category
Documents
-
view
219 -
download
1
description
Transcript of Estructura de Datos 1
Aplicaciones de las LISTAS en el mundo la programación
Hoy en día está bastante ligado el hecho de la utilización de las listas dinámicas
como un medio de almacenamiento de información en movimiento por lo que
muchos de los sistemas actualmente utilizan de varias maneras el mismo
concepto de lista para solucionar un problema en la distinta proyección que se
genera para la información en movimiento.
Así tenemos aplicaciones como el de un parqueadero que necesita una
combinación de una base de datos donde la lista liga el comportamiento de los
datos que se necesiten guardar para ser utilizados mas tarde o eliminados de ser
el caso que el conductor sale del parqueadero y los datos solo ocupan memoria
o en casos diferentes que se necesite ordenar la información de acurdo a algún
parámetro para manejarla de mejor manera y más eficiente, también se aplica en
lo que tiene que ver hoy en día con los pases de abordar en un aeropuerto puesto
que muchos clientes necesitan registrar su vuelo con semanas y a veces con
meses de anticipación por lo que esa información debe ser almacenada y tener a
la mano o en otros casos que el cliente posponga su viaje y tenga que esa
información migrar a otra posición por la reubicación del día, la hora, etc., por lo
que el uso de listas liga mucho este campo, otro lugar son los bancos que
necesitan mucho de las listas tanto al insertar nuevos clientes al banco, como al
eliminar sus cuentas bancarias pero no queda ahí también es importante ya en el
manejo interno entre cliente y bancario de servicios puesto si se necesita
depositar o retirar una cantidad se tiene que registrar esa operación pero que tal
que un día se deposite un gran cantidad y al otro día se retire su totalidad del
depósito o aún más si un cliente tiene problemas necesita buscar su información
talvez por modificar datos o eliminarlos, otro campo más fuerte que usa muy por
debajo del ojo humano es en experimentación e investigación que hoy en día eso
está en auge cuando se necesite registrar información o modificar (porque a
medida que se verifica alguna hipótesis se comprueba o rechaza) lo que cambia
los datos o si necesita buscar datos puntuales de alguna investigación anterior
(como lo hace la NASA y el Campo de investigaciones Ruso como ejemplo
puntual) que ellos utilizan estos recursos de manera continua.
Comparación de rendimiento entre Arreglos y Listas
Arreglo: Un arreglo es una secuencia contigua de un número fijo de elementos
homogéneos. Por ejemplo tenemos un arreglo de enteros con 10 elementos:
Lista enlazada: Una lista enlazada es una serie de nodos, conectados entre sí a
través de una referencia, en donde se almacena la información de los elementos
de la lista. Por lo tanto, los nodos de una lista enlazada se componen de dos
partes principales:
Implementación de la clase nodo
Las listas están compuestas por nodos, estos nodos tienen un dato o valor y un
puntero a otro(s) nodo(s).
Secuencia ordenada de nodos donde cada nodo almacena:
–Un dato
–Una referencia al siguiente nodo
•Los nodos no tienen por qué estar contiguos en memoria
Clase nodo
Arreglo
Uso eficiente de memoria cuando todas las posiciones
están ocupadas: por guardarse en posiciones consecutivas de
memoria.
Uso no eficiente de memoria por tener que reservar espacio
para el caso peor
Acceso aleatorio: se puede acceder a cualquier posición
del array en tiempo constante
Puede ocurrir que, pese a haber suficiente memoria libre,
no haya un bloque contiguo suficientemente grande
Lista
No hay necesidad de grandes cantidades de memoria
contigua (rendimiento optimo de memoria)
El uso de memoria se adapta dinámicamente al número de datos almacenados en la lista en cada momento (optimiza
procesos y recursos de memoria ne timpo de
ejecucion)
Inserción y extracción de nodos con coste independiente del
tamaño de la lista
Concatenación y partición listas con coste
independiente del tamaño de las listas
class Nodo { private: int dato, nodoSiguiente; public: Nodo(); void setSiguiente(int nS) { this->nodoSiguiente = nS; }; void setDato(int d) { this->dato = d; }; int getSiguiente() { return nodoSiguiente; }; int getDato() { return dato; }; };
Bibliografía
Bustos, B. (27 de Octubre de 2014). Estructura de datos basica. Obtenido de
http://users.dcc.uchile.cl/~bebustos/apuntes/cc30a/Estructuras/
Quiroz, L. (27 de Octubre de 2014). Listas enlazadas. Obtenido de
http://www.it.uc3m.es/java/gitt/units/pilas-colas/slides/1-listas_es.old.pdf
Rony, J. (27 de Octubre de 2014). Listas enlazadas – Clase Lista,Nodo en c++. Obtenido de
http://ronnyml.wordpress.com/2009/07/04/listas-enlazadas-clase-lista-en-c/