Você está na página 1de 21

Listas Pilas Colas

Carlos Rosario 10-1337

Las listas son una estructura de datos organizada de forma secuencial, homognea y dinmica. Refirindonos a que pueden crecer o decrecer en tiempo de ejecucin segn nuestras necesidades. Tipos de listas: Densa: la propia estructura determina cual es el siguiente elemento de la lista. Ejemplo: arrays. Enlazadas: la posicin del siguiente elemento de la estructura la determina el elemento actual.

La lista enlazada es un TDA que nos permite almacenar datos de una forma organizada, al igual que los vectores pero, a diferencia de estos, esta estructura es dinmica, por lo que no tenemos que saber "a prioridad" los elementos que puede contener. En una lista enlazada, cada elemento apunta al siguiente excepto el ltimo que no tiene sucesor y el valor del enlace es null. Por ello los elementos son registros que contienen el dato a almacenar y un enlace al siguiente elemento. Los elementos de una lista, suelen recibir tambin el nombre de nodos de la lista.

Los operadores bsicos de una lista enlazada son: Insertar: inserta un nodo con dato x en la lista, pudiendo realizarse esta insercin al principio o final de la lista o bien en orden. Eliminar: elimina un nodo de la lista, puede ser segn la posicin o por el dato. Buscar: busca un elemento en la lista. Localizar: obtiene la posicin del nodo en la lista.

Vaciar: borra todos los elementos de la lista

Tiene que declararse el tamao de la lista.


Exige sobrevaloracin. Consume mucho espacio.

Complejidad computacional de las operaciones:


Buscar el ensimo, tiempo constante Visualizar y Buscar, tiempo lineal. Insertar y Eliminar son costosas. Insertar o eliminar un elemento exige, en promedio, desplazar la mitad de los valores, O(n). La construccin de una lista o la eliminacin de todos sus elementos podra exigir un tiempo cuadrtico.

Cada nodo apunta al siguiente; el ultimo no apunta a nada. La lista es un puntero al primer nodo (y al ultimo). Complejidad computacional de las operaciones:
Visualizar y Buscar, tiempo lineal. Buscar el ensimo, tiempo lineal. Eliminar realiza un cambio de apuntadores y una orden nuevo, O(1). Usa Buscar anterior cuyo tiempo de ejecucin es lineal. Insertar tras una posicin P requiere una llamada a new y dos maniobras con apuntadores, O(1). Buscar la posicin P podra llevar tiempo lineal. Un nodo cabecera facilita la insercin y la eliminacin al comienzo de la lista.

Cada nodo apunta al siguiente y al anterior. Duplica el uso de la memoria necesaria para los punteros. Duplica el coste de manejo de punteros al insertar y eliminar. La eliminacin se simplica.
No es necesario buscar el elemento anterior.

Lista de numero de turnos. Lista de artculos de un almacen. Lista de personas.

Tipo: Unidimensional {inv:N pertenece Z+(numeros enteros positivos} Operaciones:


Crear_vectorint>vector Asignar_valoresvectorxint>vector Ordenar_vectorvectorxint>vector Determ_centrovectorxint>int

Una pila, es una estructura de datos en la que el ltimo elemento en entrar es el primero en salir, opr lo que tambin se denominan estructuras LIFO(Last In, First Out).

Acceso limitado al ultimo elemento insertado. Operaciones bsicas: apilar, desapilar y cima.
Push: insertar la data en el tope de la pila. Pop: remueve la data del tope de la pila. Desapilar o cima en una pila vaca es un error en el TDA pila. Quedarse sin espacio al apilar es un error de implementacin.

Cada operacin deber tardar una cantidad constante de tiempo en ejecutarse.


Con independencia del numero de elementos apiladas.

Organizador de paquetes. Pila de cajas de artculos. Maletero.

Invariante:n<>0 Operaciones:crearPila() Devuelve valor del tipo pila preparado para ser usado y que contiene un valor de pila vaca. Esta operacin es la misma que la de las listas generales. Precondiciones:N=0 Poscondiciones:pilacread

Una cola es una secuencia de elementos de un cierto tipo, dispuesto en una dimension(tipo lineal de datos) Nuevos elementos se anaden al final de la cola.

Esta estructura de datos se puede definir como una lista enlazada con acceso FIFO a la que slo se tiene acceso al final de la lista para meter elementos y al principio de esta para sacarlos.

insertar, quitarPrimero y primero. Cada rutina debera ejecutarse en tiempo constante.

En una cola de prioridad los elementos estn ordenados dependiendo de su prioridad, de tal forma que este disponible (para las operaciones Frente y Extraer) el elemento de mxima prioridad. En caso de igualdad se sigue la regla FIFO, de dos elementos con igual prioridad sale primero el que primero entro. Esto se puede conseguir bien insertando ordenadamente y extrayendo el primer elemento.

Tipo: Unidimensional Invariante: {Inv: N pertenece Z+} Operaciones:


Cola_Crear x int > vector Cola_Insertar vector x int x int > vector Cola_Extraer vector x int > vector Cola_Hayelementos vector > boolean Cola_Eliminar vector x int > vector Cola_llena vector x int > vector Cola_Vaciar vector x int > vector

Cola en impresora. Filas para auto servi.

Você também pode gostar