SlideShare una empresa de Scribd logo
1 de 17
Tad Lista, Pilas
y Colas
Bayron Ruben De Leon Perez
12-0542
Estructura de Datos
Prof. Rina Familia
Introducción




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 dinámica, por lo que no tenemos que
saber "a priori" 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 también el nombre de nodos de
la lista.
Ejemplo

Figura 1. Esquema de un nodo y una lista enlazada.

epresenta el dato a almacenar.
Puede ser de cualquier tipo; en
este ejemplo se trata de una lista
de enteros.
Es un puntero al siguiente
elemento de la lista; con este
puntero enlazamos con el
sucesor, de forma que podamos
construir la lista.
Los operadores básicos de una lista
enlazada son:







Insertar: inserta un nodo con dato x en la lista, pudiendo
realizarse esta inserción al principio o final de la lista o
bien en orden.
Eliminar: elimina un nodo de la lista, puede ser según la
posición o por el dato.
Buscar: busca un elemento en la lista.
Localizar: obtiene la posición del nodo en la lista.
Vaciar: borra todos los elementos de la lista
GSList
La definición de la estructura GSList o, lo
que es lo mismo, un nodo de la lista, está
definido de la siguiente manera:
struct GSList { gpointer data; GSList *next; };
Pilas
Las pilas son estructuras de datos que tienes
dos operaciones básicas:
push (para insertar un elemento) y pop (para
extraer un elemento). Su
característica fundamental es que al extraer se
obtiene siempre el último
elemento que acaba de insertarse. Por esta
razón también se conocen como
estructuras de datos LIFO (del inglés Last In First
Out.
Por ejemplo:
Una posible implementación mediante listas
enlazadas sería insertando y extrayendo
siempre por el principio de la lista. Gracias a
las pilas es posible el uso de la recursividad.
La variable que llama al mismo
procedimiento en el que está, habrá que
guardarla así como el resto de variables de
la nueva llamada, para a la vuelta de la
recursividad ir sacandolas, esto es posible a
la implementación de pilas.
Las pilas se utilizan en muchas aplicaciones
que utilizamos con frecuencia. Por
ejemplo, la gestión de ventanas en
Windows (cuando cerramos una ventana
siempre recuperamos la que teníamos
detrás). Otro ejemplo es la evaluación
general de cualquier expresión matemática
para evitar tener que calcular el número de
variables temporales que hacen falta.
Colas
Las colas también son llamadas FIFO (First In
First Out), que quiere decir “el primero que
entra es el primero que sale”.
Colas simples:

Se inserta por un sitio y se saca por otro, en
el caso de la cola simple se inserta por el
final y se saca por el principio. Para
gestionar este tipo de cola hay que
recordar siempre cual es el siguiente
elemento que se va a leer y cual
es el último elemento que se ha introducido.
Ejemplo
Colas circulares:

En las colas circulares se considera que
después del último elemento se accede de
nuevo al primero. De esta forma se reutilizan
las posiciones extraídas, el final de la cola es
a su vez el principio, creándose un circuito
cerrado.
Ejemplo
Colas con prioridad
Las colas con prioridad se implementan
mediante listas o arrays ordenados. No nos
interesa en este caso que salgan en el
orden de entrada sino con una prioridad
que le asignemos. Puede darse el caso que
existan
varios elementos con la misma prioridad, en
este caso saldrá primero aquel
que primero llego (FIFO).
Paquete Pila
Finalmente implementamos el paquete pila
tanto para un array como para listas. Esta
implementación será realmente útil para el
tema siguiente,recursividad.
Array:
ADS
generic type TDato is private;
package Pila_generica is

type TPila (Maximo : Positive) is private;
Llena, Vacia, FueraDeRango : exception;
procedure Push ( Pila : in out TPila; Dato : in TDato );
procedure Pop ( Pila : in out TPila; Dato: out TDato );
function PilaVacia (Pila : in TPila) return Boolean;
function PilaLlena (Pila : in TPila) return Boolean;
function Valor ( Pila : in TPila; Index : Positive ) return TDato;

private
type TVector is array (Positive range <>) of TDato;
type TPila (Maximo : Positive) is record
Contenido : TVector (1 .. Maximo);
Cima : Natural := 0;
end record;
end;

Más contenido relacionado

La actualidad más candente

Archivo secuencial indexado
Archivo secuencial indexadoArchivo secuencial indexado
Archivo secuencial indexadoTortuly
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de DatosDARKGIRL93
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosJosé Antonio Sandoval Acosta
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesJosé Antonio Sandoval Acosta
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserciónAlvaro Enrique Ruano
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de DatosVannesa Salazar
 
Estructura de Datos: Lista
Estructura de Datos: ListaEstructura de Datos: Lista
Estructura de Datos: ListaEmerson Garay
 
Clasificacion de los sistemas de base de datos
Clasificacion de los sistemas de base de datosClasificacion de los sistemas de base de datos
Clasificacion de los sistemas de base de datosManuel Gutiérrez
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datosYarquiri Claudio
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoriacaredimaria
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Modelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datosModelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datosFernando Baculima
 
12 reglas de codd
12 reglas de codd12 reglas de codd
12 reglas de coddenriquesyso
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasknowallrpa
 

La actualidad más candente (20)

Archivo secuencial indexado
Archivo secuencial indexadoArchivo secuencial indexado
Archivo secuencial indexado
 
Arboles En Estructura de Datos
Arboles En Estructura de DatosArboles En Estructura de Datos
Arboles En Estructura de Datos
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras Lineales
 
Ordenamientos burbuja e inserción
Ordenamientos burbuja e inserciónOrdenamientos burbuja e inserción
Ordenamientos burbuja e inserción
 
Taller de Base de Datos - Unidad 5 transacciones
Taller de Base de Datos - Unidad 5  transaccionesTaller de Base de Datos - Unidad 5  transacciones
Taller de Base de Datos - Unidad 5 transacciones
 
Normalización de Base de Datos
Normalización de Base de DatosNormalización de Base de Datos
Normalización de Base de Datos
 
Estructura de Datos: Lista
Estructura de Datos: ListaEstructura de Datos: Lista
Estructura de Datos: Lista
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Clasificacion de los sistemas de base de datos
Clasificacion de los sistemas de base de datosClasificacion de los sistemas de base de datos
Clasificacion de los sistemas de base de datos
 
Unidad 1. Sistema Manejador de Bases de Datos
Unidad 1. Sistema Manejador de Bases de DatosUnidad 1. Sistema Manejador de Bases de Datos
Unidad 1. Sistema Manejador de Bases de Datos
 
Normalizacion de base de datos
Normalizacion de base de datosNormalizacion de base de datos
Normalizacion de base de datos
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoria
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Modelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datosModelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datos
 
12 reglas de codd
12 reglas de codd12 reglas de codd
12 reglas de codd
 
Colas estáticas. IESIT
Colas estáticas. IESITColas estáticas. IESIT
Colas estáticas. IESIT
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 

Similar a Tad lista, pilas y colas

Lissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colasLissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colasLissette I. Pimentel S
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colasAmaury Pascal
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colasAmaury Pascal
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datoscharlezgt
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colasjorgeluis0317
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Edward Mejia Gomez
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasElias Peña
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasElias Peña
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colasiventura26
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasHuascar Génere
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasMaxDLeon
 
Implementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptxImplementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptxRafael nin
 
Listas,pilas y colas
Listas,pilas y colasListas,pilas y colas
Listas,pilas y colasBlackzerox
 
Listas, pilas y colas richard ramos 09-1130
Listas, pilas y colas   richard ramos 09-1130Listas, pilas y colas   richard ramos 09-1130
Listas, pilas y colas richard ramos 09-1130reyarturo16
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337CJrosario2
 
Listas c#
Listas c#Listas c#
Listas c#rezzaca
 

Similar a Tad lista, pilas y colas (20)

Lissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colasLissette pimentel 11 1149 --- listas, pilas y colas
Lissette pimentel 11 1149 --- listas, pilas y colas
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colas
 
Lista, pilas y colas
Lista, pilas y colasLista, pilas y colas
Lista, pilas y colas
 
Darwin rodriguez 12-0861_pilasy_colas
Darwin rodriguez 12-0861_pilasy_colasDarwin rodriguez 12-0861_pilasy_colas
Darwin rodriguez 12-0861_pilasy_colas
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colas
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
 
Presentacion pilas lista y colas
Presentacion pilas lista y colas  Presentacion pilas lista y colas
Presentacion pilas lista y colas
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
Estructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colasEstructura de datos listas, pilas y colas
Estructura de datos listas, pilas y colas
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Estructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colasEstructura de datos: lista, pilas y colas
Estructura de datos: lista, pilas y colas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Implementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptxImplementación-de-pilas-por-medio-de-listas.pptx
Implementación-de-pilas-por-medio-de-listas.pptx
 
Listas,pilas y colas
Listas,pilas y colasListas,pilas y colas
Listas,pilas y colas
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
Listas, pilas y colas richard ramos 09-1130
Listas, pilas y colas   richard ramos 09-1130Listas, pilas y colas   richard ramos 09-1130
Listas, pilas y colas richard ramos 09-1130
 
Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337Listas pilas colas_carlos_rosario10-1337
Listas pilas colas_carlos_rosario10-1337
 
Listas c#
Listas c#Listas c#
Listas c#
 

Tad lista, pilas y colas

  • 1. Tad Lista, Pilas y Colas Bayron Ruben De Leon Perez 12-0542 Estructura de Datos Prof. Rina Familia
  • 2. Introducción   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 dinámica, por lo que no tenemos que saber "a priori" 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 también el nombre de nodos de la lista.
  • 3. Ejemplo Figura 1. Esquema de un nodo y una lista enlazada. epresenta el dato a almacenar. Puede ser de cualquier tipo; en este ejemplo se trata de una lista de enteros. Es un puntero al siguiente elemento de la lista; con este puntero enlazamos con el sucesor, de forma que podamos construir la lista.
  • 4. Los operadores básicos de una lista enlazada son:      Insertar: inserta un nodo con dato x en la lista, pudiendo realizarse esta inserción al principio o final de la lista o bien en orden. Eliminar: elimina un nodo de la lista, puede ser según la posición o por el dato. Buscar: busca un elemento en la lista. Localizar: obtiene la posición del nodo en la lista. Vaciar: borra todos los elementos de la lista
  • 5. GSList La definición de la estructura GSList o, lo que es lo mismo, un nodo de la lista, está definido de la siguiente manera: struct GSList { gpointer data; GSList *next; };
  • 6. Pilas Las pilas son estructuras de datos que tienes dos operaciones básicas: push (para insertar un elemento) y pop (para extraer un elemento). Su característica fundamental es que al extraer se obtiene siempre el último elemento que acaba de insertarse. Por esta razón también se conocen como estructuras de datos LIFO (del inglés Last In First Out.
  • 8. Una posible implementación mediante listas enlazadas sería insertando y extrayendo siempre por el principio de la lista. Gracias a las pilas es posible el uso de la recursividad. La variable que llama al mismo procedimiento en el que está, habrá que guardarla así como el resto de variables de la nueva llamada, para a la vuelta de la recursividad ir sacandolas, esto es posible a la implementación de pilas.
  • 9. Las pilas se utilizan en muchas aplicaciones que utilizamos con frecuencia. Por ejemplo, la gestión de ventanas en Windows (cuando cerramos una ventana siempre recuperamos la que teníamos detrás). Otro ejemplo es la evaluación general de cualquier expresión matemática para evitar tener que calcular el número de variables temporales que hacen falta.
  • 10. Colas Las colas también son llamadas FIFO (First In First Out), que quiere decir “el primero que entra es el primero que sale”.
  • 11. Colas simples: Se inserta por un sitio y se saca por otro, en el caso de la cola simple se inserta por el final y se saca por el principio. Para gestionar este tipo de cola hay que recordar siempre cual es el siguiente elemento que se va a leer y cual es el último elemento que se ha introducido.
  • 13. Colas circulares: En las colas circulares se considera que después del último elemento se accede de nuevo al primero. De esta forma se reutilizan las posiciones extraídas, el final de la cola es a su vez el principio, creándose un circuito cerrado.
  • 15. Colas con prioridad Las colas con prioridad se implementan mediante listas o arrays ordenados. No nos interesa en este caso que salgan en el orden de entrada sino con una prioridad que le asignemos. Puede darse el caso que existan varios elementos con la misma prioridad, en este caso saldrá primero aquel que primero llego (FIFO).
  • 16. Paquete Pila Finalmente implementamos el paquete pila tanto para un array como para listas. Esta implementación será realmente útil para el tema siguiente,recursividad.
  • 17. Array: ADS generic type TDato is private; package Pila_generica is type TPila (Maximo : Positive) is private; Llena, Vacia, FueraDeRango : exception; procedure Push ( Pila : in out TPila; Dato : in TDato ); procedure Pop ( Pila : in out TPila; Dato: out TDato ); function PilaVacia (Pila : in TPila) return Boolean; function PilaLlena (Pila : in TPila) return Boolean; function Valor ( Pila : in TPila; Index : Positive ) return TDato; private type TVector is array (Positive range <>) of TDato; type TPila (Maximo : Positive) is record Contenido : TVector (1 .. Maximo); Cima : Natural := 0; end record; end;