SlideShare une entreprise Scribd logo
1  sur  33
Listas, Pilas y Colas
Estructura de Datos

Dr. Rina Familia

Yorka M. Perez F. 11-1157
Lista
Es una de las estructuras de datos fundamentales, y
puede ser usada para implementar otras estructuras
de datos. Consiste en una secuencia de nodos, en los
que se guardan campos de datos arbitrarios y una o
dos referencias, enlaces o punteros al nodo anterior o
posterior.
TDA Lista Lineal
Una misma definición de un TDA puede conllevar a
implementaciones diferentes en dependencia de las
necesidades, así como de las características del lenguaje
en el que se va a desarrollar dicha implementación.

Por su forma de almacenamiento, la lista lineal se puede
implementar en una de las siguientes disposiciones:
• Secuencial
• Enlazada
Lista Secuencial
Una de las formas más simples de implementación de este TDA
es usando un arreglo unidimensional.

Todos los elementos de la lista se almacenan en posiciones de
memoria consecutivas. Por se habla de disposición secuencial en
la memoria de la computadora.
A la lista se le conoce como lista secuencial.
Lista Secuencial

...
1

2

3

Índice del últim o
nodo de la lista

4

5

N
C antidad física
de elem entos
del arreglo
Ventajas y desventajas
Ventajas
Con esta disposición se accede a cualquier elemento de la
estructura de datos en tiempo constante.
Desventajas
Al asignar el arreglo en tiempo de compilación debe
establecerse un límite a priori sobre el número de elementos
que pueden ser almacenados en las listas.
Para inserciones y eliminaciones frecuentes hay que hacer
corrimientos costosos.
Lista enlazada
En una lista enlazada se asigna memoria para el almacenar los
elementos de la lista conforme se va necesitando, es decir a
medida que se añaden o insertan los elementos, y se conectan los
elementos de la lista con punteros.
La memoria es liberada cuando ya no se necesita más un elemento
en la lista.
Esquemáticamente una lista enlazada se representa por una
secuencia de nodos conectados por enlaces.
Lista enlazada
primero

Cada nodo está conectado al siguiente por un solo enlace, a
esta estructura de datos se llama lista simplemente enlazada.
Lista enlazada
Un nodo de una lista simplemente enlazada contiene dos campos:
datos (contiene un elemento de la lista) y siguiente (almacena un
enlace al siguiente nodo de la lista).
El campo siguiente del último nodo contiene un símbolo especial
que indica el final de las lista.
Se accede a la lista por medio de un apuntador al primer elemento
y solo se puede recorrer la lista en un sentido, del primer nodo al
último nodo.
Lista doblemente enlazada
primero

…

Cada nodo contiene tres campos: un campo que almacena el elemento de la
lista y los otros dos almacenan los enlaces a los nodos precedente y siguiente
de la lista.
Se usan punteros nulos para marcar ambos extremos de la lista.
Lista enlazada circular
primero

El campo siguiente del último nodo de la lista apunta al primer nodo de la lista.
Lista doblemente enlazada circular
primero

…

El campo siguiente del último nodo apunte al primer nodo de la lista y el
campo anterior del primer nodo apunte al último nodo de la lista.
Ventajas y desventajas
Ventajas
No es preciso conocer la cantidad de elementos en tiempo
de compilación. Ni las inserciones ni las eliminaciones
implican realizar corrimientos de los elementos de la lista.
Desventajas
No permite el acceso directo a un elemento arbitrario de la
lista. Para acceder al i-ésimo elemento, debemos recorrer
la lista, comenzando por el primer nodo, hasta llegar al
elemento deseado.
Estructura de una lista encadenada
Borrando un elemento de una lista
encadenada
Insertando un elemento de una lista
encadenada
Usando una pila (stack) para imprimir una lista en
orden inverso.
TDA PILA
Pila:
Es una lista ordenada de elementos en la que todas las
inserciones y supresiones se realizan por un mismo extremo
denominado tope o cima de la pila.
Estructura LIFO (Last In First Out): “último en entrar es el
primero en salir”
TDA PILA
La implementación de una pila se puede realizar mediante arreglos
o con punteros. El inconveniente de la realización de una pila
mediante arreglos es que su tamaño máximo se debe Especificar
en tiempo de compilación. Debido a esto, la implementación de
pilas se realiza Frecuentemente mediante punteros.
Una pila puede contener un número ilimitado de elementos y no
producir nunca desbordamiento. En la práctica, sin embargo, el
espacio de almacenamiento disponible es finito.
Las operaciones que se pueden realizar con una pila son:
 PUSH (pila, elemento): Introduce un elemento en la pila.

También se le

conoce como poner o meter.
 POP (pila): Elimina un elemento de la pila. También se le conoce como
sacar o quitar.
 VACIA (pila): Función booleana que indica si la pila esta vacía o no.
TDA PILA
Operaciones
 Crear_pila(P: pila, ok: lógico)
 Borrar_pila(P: pila, ok: lógico)
 Vacía?(P: pila, resp: lógico)
 Llena?(P: pila, resp: lógico)
 Push(P: pila, X: elemento, resp: lógico)
 Pop(P: pila, X: elemento, resp: lógico)

 Top(P: pila, X: elemento, resp: lógico)
Mecanismos de Implementación del Tad
Pilas a Través de Listas y Vectores
La pila también se puede implementar usando un array. Esto es mucho más
complicado que usar una lista pero en otros lenguajes puede ser útil si se conoce
el tamaño máximo que tendrá la pila.
Para implementar la pila con un arreglo hay que tener lo siguiente:
Una variable que guarde el tope
 El largo del array
 El array que contiene los datos
 Para esto suponemos que el array comienza en 0.
 Al principio la variable que indica el tope debe iniciarse en 0.

.

Colas
Una cola es un conjunto ordenado de elementos homogéneos, en el cual los
elementos se eliminan por uno de sus extremos, denominado cabeza, y se
añaden por el otro extremo, denominado final.
En las colas el elemento que entró primero también sale primero, por ello se
conocen como estructuras FIFO (First in First out). Así pues la diferencia con
las pilas es solamente el modo de entrada y salida de datos.
Colas y Listas Enlazadas

24
Colas
Una cola se diferencia de una pila en que las operaciones de inserción y
extracción siguen el principio de primero en entrar - primero en salir (firstin-first-out, FIFO).
Los elementos se pueden insertar en cualquier momento, pero solo el
elemento que ha permanecido el mayor tiempo puede ser extraído.
Los elementos se insertan (enqueued) al final (rear) y se extraen
(dequeued) desde el frente (front).

25
El tipo de Dato Abstracto Cola
La cola tiene dos métodos fundamentales:
 enqueue(o): Inserta objecto o al final de la cola
 dequeue(): Extrae el objeto del frente de la cola y lo devuelve;
ocurre un error si la cola está vacía
Los siguientes métodos de soporte deben ser definidos:
 size(): Devuelve el núemro de objetos en la cola
 isEmpty(): Devuelve un valor lógico que indica si la cola está
vacía
 front():Devuelve, sin eliminar, el objeto del frente de la cola;
ocurre un error si la cola está vacía
26
Cola basada en Array
 Crea una cola usando un array de forma circular.
 Se especifica un tamaño máximo N, e.g. N = 1,000.
 La cola consiste de un array Q de N-elementos y dos variables
enteras:
o -f, índice del elemento del frente
o -r, índice del elemento siguiente al final de la cola
 “configuración normal”

27
Implementación de una Cola con una
Lista Enlazada Simple
Lista Enlazada Simple: Nodos conectados en cadena por enlaces

La cabeza de la lista es el frente de la cola, la cola de la lista es el final de la cola. Porqué no lo

contrario?

28
Extración de la Cabeza

29
Insertando por la cola

30
Colas con finales dobles
Una cola con doble-final, o deque, soporta inserción y extracción desde el
frente y el final.
El Tipo de Dato Abstracto Deque
insertFirst(e):
Inserta e al de-inicio de la deque.
insertLast(e): Inserta e al de-final de la deque
removeFirst():
Extrae y devuelve primer elemento
removeLast():
Extrae y devuelve último elemento

Métodos de soporte adicionales:
first()
last()
size()
isEmpty()

31
Refencias
http://es.scribd.com/doc/123293487/Pensar-en-Cpp-Vol2
http://es.wikipedia.org/wiki/Lista_(inform%C3%A1tica)
http://www.infor.uva.es/~belar/Ampliacion/TDAS/TDA_PILA_1.pdf
http://informatica.utem.cl/~mcast/ESDATOS/TADS/Ttema2.pdf

Contenu connexe

Tendances

Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoTAtiizz Villalobos
 
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
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Juan Astudillo
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colasknowallrpa
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.xaviercamposm
 
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
 

Tendances (20)

Programación 3: colas
Programación 3: colasProgramación 3: colas
Programación 3: colas
 
Listas
ListasListas
Listas
 
Reporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamientoReporte metodos de busqueda y ordenamiento
Reporte metodos de busqueda y ordenamiento
 
Pilas estáticas. IESIT
Pilas estáticas. IESITPilas estáticas. IESIT
Pilas estáticas. IESIT
 
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
 
Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)Java pilas (Stacks) y colas (Queues)
Java pilas (Stacks) y colas (Queues)
 
Listas doblemente enlazadas
Listas doblemente enlazadasListas doblemente enlazadas
Listas doblemente enlazadas
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Listas
ListasListas
Listas
 
Pilas En C++
Pilas En C++Pilas En C++
Pilas En C++
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.
 
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
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Ordenamiento parte 2
Ordenamiento parte 2Ordenamiento parte 2
Ordenamiento parte 2
 

Similaire à Listas,pilas y colas Estructura de Datos

Similaire à Listas,pilas y colas Estructura de Datos (20)

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
 
Listas, pilas & colas
Listas, pilas & colasListas, pilas & colas
Listas, pilas & colas
 
ED Listas, Pilas y Colas
ED Listas, Pilas y ColasED Listas, Pilas y Colas
ED Listas, Pilas y Colas
 
Unidad tres estructura de datos
Unidad tres estructura de datosUnidad tres estructura de datos
Unidad tres estructura de datos
 
Listas en C#
Listas en C#Listas en C#
Listas en C#
 
Estructura de dato unidad 3
Estructura de dato unidad 3Estructura de dato unidad 3
Estructura de dato unidad 3
 
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 c#
Listas c#Listas c#
Listas c#
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
Tda y heaps
Tda y heapsTda y heaps
Tda y heaps
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Saiymari colas, filas y nos e que otra cosa
Saiymari colas, filas y nos e que otra cosaSaiymari colas, filas y nos e que otra cosa
Saiymari colas, filas y nos e que otra cosa
 
Colas, filas
Colas, filasColas, filas
Colas, filas
 
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
 
estructura lineales
estructura linealesestructura lineales
estructura lineales
 
Listas encadenadas
Listas encadenadas Listas encadenadas
Listas encadenadas
 
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
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Teoria de listas
Teoria de listasTeoria de listas
Teoria de listas
 

Dernier

Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 

Dernier (20)

Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 

Listas,pilas y colas Estructura de Datos

  • 1. Listas, Pilas y Colas Estructura de Datos Dr. Rina Familia Yorka M. Perez F. 11-1157
  • 2. Lista Es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos. Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias, enlaces o punteros al nodo anterior o posterior.
  • 3. TDA Lista Lineal Una misma definición de un TDA puede conllevar a implementaciones diferentes en dependencia de las necesidades, así como de las características del lenguaje en el que se va a desarrollar dicha implementación. Por su forma de almacenamiento, la lista lineal se puede implementar en una de las siguientes disposiciones: • Secuencial • Enlazada
  • 4. Lista Secuencial Una de las formas más simples de implementación de este TDA es usando un arreglo unidimensional. Todos los elementos de la lista se almacenan en posiciones de memoria consecutivas. Por se habla de disposición secuencial en la memoria de la computadora. A la lista se le conoce como lista secuencial.
  • 5. Lista Secuencial ... 1 2 3 Índice del últim o nodo de la lista 4 5 N C antidad física de elem entos del arreglo
  • 6. Ventajas y desventajas Ventajas Con esta disposición se accede a cualquier elemento de la estructura de datos en tiempo constante. Desventajas Al asignar el arreglo en tiempo de compilación debe establecerse un límite a priori sobre el número de elementos que pueden ser almacenados en las listas. Para inserciones y eliminaciones frecuentes hay que hacer corrimientos costosos.
  • 7. Lista enlazada En una lista enlazada se asigna memoria para el almacenar los elementos de la lista conforme se va necesitando, es decir a medida que se añaden o insertan los elementos, y se conectan los elementos de la lista con punteros. La memoria es liberada cuando ya no se necesita más un elemento en la lista. Esquemáticamente una lista enlazada se representa por una secuencia de nodos conectados por enlaces.
  • 8. Lista enlazada primero Cada nodo está conectado al siguiente por un solo enlace, a esta estructura de datos se llama lista simplemente enlazada.
  • 9. Lista enlazada Un nodo de una lista simplemente enlazada contiene dos campos: datos (contiene un elemento de la lista) y siguiente (almacena un enlace al siguiente nodo de la lista). El campo siguiente del último nodo contiene un símbolo especial que indica el final de las lista. Se accede a la lista por medio de un apuntador al primer elemento y solo se puede recorrer la lista en un sentido, del primer nodo al último nodo.
  • 10. Lista doblemente enlazada primero … Cada nodo contiene tres campos: un campo que almacena el elemento de la lista y los otros dos almacenan los enlaces a los nodos precedente y siguiente de la lista. Se usan punteros nulos para marcar ambos extremos de la lista.
  • 11. Lista enlazada circular primero El campo siguiente del último nodo de la lista apunta al primer nodo de la lista.
  • 12. Lista doblemente enlazada circular primero … El campo siguiente del último nodo apunte al primer nodo de la lista y el campo anterior del primer nodo apunte al último nodo de la lista.
  • 13. Ventajas y desventajas Ventajas No es preciso conocer la cantidad de elementos en tiempo de compilación. Ni las inserciones ni las eliminaciones implican realizar corrimientos de los elementos de la lista. Desventajas No permite el acceso directo a un elemento arbitrario de la lista. Para acceder al i-ésimo elemento, debemos recorrer la lista, comenzando por el primer nodo, hasta llegar al elemento deseado.
  • 14. Estructura de una lista encadenada
  • 15. Borrando un elemento de una lista encadenada
  • 16. Insertando un elemento de una lista encadenada
  • 17. Usando una pila (stack) para imprimir una lista en orden inverso.
  • 18. TDA PILA Pila: Es una lista ordenada de elementos en la que todas las inserciones y supresiones se realizan por un mismo extremo denominado tope o cima de la pila. Estructura LIFO (Last In First Out): “último en entrar es el primero en salir”
  • 19. TDA PILA La implementación de una pila se puede realizar mediante arreglos o con punteros. El inconveniente de la realización de una pila mediante arreglos es que su tamaño máximo se debe Especificar en tiempo de compilación. Debido a esto, la implementación de pilas se realiza Frecuentemente mediante punteros. Una pila puede contener un número ilimitado de elementos y no producir nunca desbordamiento. En la práctica, sin embargo, el espacio de almacenamiento disponible es finito.
  • 20. Las operaciones que se pueden realizar con una pila son:  PUSH (pila, elemento): Introduce un elemento en la pila. También se le conoce como poner o meter.  POP (pila): Elimina un elemento de la pila. También se le conoce como sacar o quitar.  VACIA (pila): Función booleana que indica si la pila esta vacía o no.
  • 21. TDA PILA Operaciones  Crear_pila(P: pila, ok: lógico)  Borrar_pila(P: pila, ok: lógico)  Vacía?(P: pila, resp: lógico)  Llena?(P: pila, resp: lógico)  Push(P: pila, X: elemento, resp: lógico)  Pop(P: pila, X: elemento, resp: lógico)  Top(P: pila, X: elemento, resp: lógico)
  • 22. Mecanismos de Implementación del Tad Pilas a Través de Listas y Vectores La pila también se puede implementar usando un array. Esto es mucho más complicado que usar una lista pero en otros lenguajes puede ser útil si se conoce el tamaño máximo que tendrá la pila. Para implementar la pila con un arreglo hay que tener lo siguiente: Una variable que guarde el tope  El largo del array  El array que contiene los datos  Para esto suponemos que el array comienza en 0.  Al principio la variable que indica el tope debe iniciarse en 0. 
  • 23. . Colas Una cola es un conjunto ordenado de elementos homogéneos, en el cual los elementos se eliminan por uno de sus extremos, denominado cabeza, y se añaden por el otro extremo, denominado final. En las colas el elemento que entró primero también sale primero, por ello se conocen como estructuras FIFO (First in First out). Así pues la diferencia con las pilas es solamente el modo de entrada y salida de datos.
  • 24. Colas y Listas Enlazadas 24
  • 25. Colas Una cola se diferencia de una pila en que las operaciones de inserción y extracción siguen el principio de primero en entrar - primero en salir (firstin-first-out, FIFO). Los elementos se pueden insertar en cualquier momento, pero solo el elemento que ha permanecido el mayor tiempo puede ser extraído. Los elementos se insertan (enqueued) al final (rear) y se extraen (dequeued) desde el frente (front). 25
  • 26. El tipo de Dato Abstracto Cola La cola tiene dos métodos fundamentales:  enqueue(o): Inserta objecto o al final de la cola  dequeue(): Extrae el objeto del frente de la cola y lo devuelve; ocurre un error si la cola está vacía Los siguientes métodos de soporte deben ser definidos:  size(): Devuelve el núemro de objetos en la cola  isEmpty(): Devuelve un valor lógico que indica si la cola está vacía  front():Devuelve, sin eliminar, el objeto del frente de la cola; ocurre un error si la cola está vacía 26
  • 27. Cola basada en Array  Crea una cola usando un array de forma circular.  Se especifica un tamaño máximo N, e.g. N = 1,000.  La cola consiste de un array Q de N-elementos y dos variables enteras: o -f, índice del elemento del frente o -r, índice del elemento siguiente al final de la cola  “configuración normal” 27
  • 28. Implementación de una Cola con una Lista Enlazada Simple Lista Enlazada Simple: Nodos conectados en cadena por enlaces La cabeza de la lista es el frente de la cola, la cola de la lista es el final de la cola. Porqué no lo contrario? 28
  • 29. Extración de la Cabeza 29
  • 30. Insertando por la cola 30
  • 31. Colas con finales dobles Una cola con doble-final, o deque, soporta inserción y extracción desde el frente y el final. El Tipo de Dato Abstracto Deque insertFirst(e): Inserta e al de-inicio de la deque. insertLast(e): Inserta e al de-final de la deque removeFirst(): Extrae y devuelve primer elemento removeLast(): Extrae y devuelve último elemento Métodos de soporte adicionales: first() last() size() isEmpty() 31
  • 32.