Pilas y Colas Cursos Propedéuticos 2006 Programación y Estructuras de Datos Manuel Montes Claudia Feregrino

Slides:



Advertisements
Presentaciones similares
Definición Las colas ofrecen dos operaciones fundamentales, que son encolar (al final de la cola) y desencolar (del comienzo de la cola). Al igual que.
Advertisements

PILA.
ESTRUCTURA DE DATOS Unidad 03 PILAS.
ESTRUCTURA DE DATOS Unidad 03 COLAS.
Pilas y Colas Fundamentos Estructuras de Datos (Programación 2)
Programación Avanzada (semana 6) Verano 2004
TDA LISTA ESTRUCTURAS DE DATOS.
Unidad 5 Listas Enlazadas Bibliografía: Algoritmos y Estructuras de datos de Aguilar y Martinez. Unidad 9 Autor: Ing Rolando Simon Titiosky.
Listas enlazadas c++ Prof. Franklin Cedeño.
Programación II Listas
Estructuras de datos y algoritmos
Estructura de Datos En C++
Programación y Estructuras de Datos
Programación y Estructuras de Datos
Tipos de Datos Básicos y Estructurados
PROGRAMACION DE Pilas o Stacks y Colas
Estructuras de Datos Especificación formal de Listas.
M.I.A Daniel Alejandro García López
M.I.A Daniel Alejandro García López.  Un TDA es un tipo de dato definido por el programador que se puede manipular de un modo similar a los tipos de.
Estructuras de datos M.I.A Daniel Alejandro García López.
Programación II Colas Igor Santos Grueiro.
Colas y Listas Enlazadas
Simulación de la recursión Estructuras de datos. Llamada y regreso de una función Al llamar a una función se realizan los siguientes tres pasos: 1. Transferencia.
Estructuras dinámicas de datos, TAD Lista, parte 2
COLAS, IMPLEMENTACIÓN A PARTIR DE LISTAS Y PARA PILAS
Pila1UVM Colas. Pila2UVM Pila3UVM 3.1 Objetivos El estudiante manejará el tad Cola, sobre memoria estática.
Pilas Una pila es una estructura lineal de elementos en donde se pueden agregar o eliminar datos únicamente por uno de los dos extremos. En consecuencia.
Igor Santos Grueiro. De este tipo de pilas NO vamos a hablar.
Práctica 7 AOC. Gestión de la pila Una pila es una estructura de datos caracterizada por que el último dato que se almacena es el primero que se obtiene.
MIPS Intermedio.
POR: Meza Guevara Sandra Fabiola Contreras Meléndez Damariz Figueroa Cisneros Ricardo UNIVERSIDAD TECNOLÓGICA DE DURANGO TECNOLÓGIAS DE LA INFORMACIÓN.
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Estructura de Datos y Algoritmos
Estructura de Datos En C++
Listas enlazadas.
1 Estructuras de Datos Elementales:stacks (pilas), queues (colas), linked lists (listas enlazadas), y rooted trees (árboles con raíz) Agustín J. González.
Pila1UVM Pilas. Pila2UVM Pila3UVM 2.1 Objetivos El estudiante manejará el tad Pila contigua.
Pilas y Colas Estructuras de Datos.
TDA PILA ESTRUCTURAS DE DATOS.
Manejo de Punteros y objetos en memoria dinámica en C++
República Bolivariana de Venezuela. Ministerio del PP para la Defensa. Universidad Nacional Experimental de la Fuerza Armada. Cátedra: Instrucción Militar.
PILAS Una pila es una estructura de datos o lista de elementos, a la cual se le puede insertar o eliminar su contenido sólo por uno de sus extremos, llamado.
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
TIPOS ABSTRACTOS DE DATOS. 2  Un Tipo Abstracto de Dato (TAD) es un modelo constituido por un conjunto de objetos y una colección de operaciones realizables.
Son estructuras de datos que almacenan y recuperan sus elementos atendiendo a un estricto orden (LIFO Last – in, first –out Ultimo en entrar – primero.
 Ignacio Soto Valdez R  Paola Karina Suarez Salazar R  Mario Alberto Castillo Aviles R
Estructuras de datos Fundamentos de análisis y diseño de algoritmos.
UNIDAD IV. PILAS, COLAS, RECURSION APLICADAS A LENGUAJE C.
Ayudantia 3: Pilas- Colas
Lic. En C.C. Ann Margareth Meza Rodríguez
IMPLEMENTACION DE COLAS MEDIANTE LISTAS
Lic. En C.C. Ann Margareth Meza Rodríguez
Estructura de Datos..
PROGRAMACION DE Pilas o Stacks
Estructura de Datos PILAS. es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In.
M.C. Meliza Contreras González
M.C. Meliza Contreras González
PILAS Una pila es una estructura de datos o lista de elementos, a la cual se le puede insertar o eliminar su contenido sólo por uno de sus extremos, llamado.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Tipo.
ESTRUCTURAS LINEALES “LA PILA”
OPERACIONES CON PILAS DECLARACIÓN O INICIALIZACIÓN DE LA PILA. Stack NombrePila=newStack (max);
Pilas Grupo 4. 1 Stack o Pila Definición: Una pila es una estructura de datos, a la cual se le puede ingresar o sacar elementos por un sólo lado. También.
PROGRAMACION DE Pilas o Stacks y Colas
MEMORIA DINÁMICA.
Ficha de datos Créditos Institucionales: 8 créditos.
Listas Dinámicas.
1 ListaUna Lista se define como una serie de N elementos E 1, E 2,..., E N, ordenados de manera consecutiva, es decir, el elemento E k (que se denomina.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
LENGUAJE DE PROGRAMACION “PILAS”
Manuel Montes y Gómez Laboratorio de Tecnologías del Lenguaje
Transcripción de la presentación:

Pilas y Colas Cursos Propedéuticos 2006 Programación y Estructuras de Datos Manuel Montes Claudia Feregrino

Contenido de la sección Pilas –Definición –Implementación usando arreglos –Ejemplos de aplicación Colas –Definición –Implementación usando arreglos –Ejemplos de aplicación

La estructura de datos PILA Su nombre se deriva de la metáfora de una pila de platos en una cocina. La inserción y extracción de elementos de la pila siguen el principio LIFO (last-in-first-out). El último elemento en entrar es el único accesible en cada momento. Entra Sale Tope

Operaciones de una PILA Las operaciones básicas de una pila son “push” (empujar, meter) y “pop” (sacar) –Push: añade un nuevo elemento a la pila –Pop: elimina un elemento de la pila Otras operaciones usualmente incluidas en el tipo de dato abstracto pila son: –isEmpty (estáVacia): verifica si la pila está vacía –isFull (estáLlena): verifica si la pila está llena

Ejemplo push(4) push(1) pop() push(4) pop()

Implementación con arreglos Una pila es una colección ordenada de objetos. En C, los arreglos permiten almacenar colecciones ordenadas. La desventaja de implementar una pila mediante un arreglo es que esta última es de tamaño fijo, mientras que la pila es de tamaño dinámico. #define STACKSIZE 100 struct Stack{ int top; int nodes[STACKSIZE]; }; struct Stack *create_stack (struct Stack *ps) { ps = (struct Stack *) malloc(sizeof(struct Stack)); ps->top=-1; return ps; } main(){ struct Stack *ps; ps=create_stack(ps); : }

Las operaciones básicas void push(struct Stack* ps, int i ) { if (ps->top == (STACKSIZE -1)) printf(“Full stack\n"); else { ps->top++; ps->nodes[ps->top] = i; } int pop(struct Stack *ps) { if (ps->top== -1) printf(“Empty stack\n"); else { int t= ps->nodes[ps-> top]; ps->top--; return t; } PUSH POP

Aplicaciones de las pilas Navegador Web –Se almacenan los sitios previamente visitados –Cuando el usuario quiere regresar (presiona el botón de retroceso), simplemente se extrae la última dirección (pop) de la pila de sitios visitados. Editores de texto –Los cambios efectuados se almacenan en una pila –Usualmente implementada como arreglo –Usuario puede deshacer los cambios mediante la operación “undo”, la cual extraer el estado del texto antes del último cambio realizado.

La estructura de datos COLA Su nombre se deriva de la metáfora de una cola de personas en una taquilla. La inserción y extracción de elementos de la cola siguen el principio FIFO (first-in-first-out). El elemento con más tiempo en la cola es el que puede ser extraído. Entra Sale cola frente

Operaciones de una COLA Las operaciones básicas de una cola son “enqueue” (meter) y “dequeue” (sacar) –enqueue: añade un nuevo elemento a final de la cola –dequeue: elimina (saca) el primer elemento de la cola Otras operaciones usualmente incluidas en el tipo abstracto COLA son: –isEmpty (estáVacia): verifica si la cola está vacía –isFull (estáLlena): verifica si la cola está llena

Ejemplo a a b a b c b c No es necesario mover todos los elementos a b a b c b c Apuntadores al frente y a la cola a

Implementación con arreglos Una cola es una colección ordenada de objetos. En C, los arreglos permiten almacenar colecciones ordenadas. Misma desventaja: los arreglos tienen tamaño fijo. Uso eficiente mediante un arreglo circular. #define QUEUESIZE 100 struct Queue{ int front; int rear; int nodes[QUEUESIZE]; }; struct Queue *create_queuek (struct Queue *ps) { ps = (struct Queue *) malloc(sizeof(struct Queue)); ps->front = 0; ps->rear = -1; return ps; } main(){ struct Queue *ps; ps=create_queue(ps); : }

Las operaciones básicas void enqueue(struct Queue* ps, int i ) { if (ps->rear == (QUEUESIZE -1)) printf(“Full queue\n"); else { ps->rear++; ps->nodes[ps->rear] = i; } int dequeue (struct Queue *ps) { if (ps->front == ps->rear + 1) printf(“Empty stack\n"); else { int t= ps->nodes[ps-> front]; ps->front++; return t; } ENQUEUE DEQUEUE NO se tiene un arreglo circular, ¿qué hacer?

Colas circulares a e f g b cd El objetivo de una cola circular es aprovechar al máximo el espacio del arreglo. La idea es insertar elementos en las localidades previamente desocupadas. La implementación tradicional considera dejar un espacio entre el frente y la cola. e f g frente cola h e f g i frente cola frente cola

Aplicaciones de las colas En general, operaciones en redes de computadoras –Trabajos enviados a una impresora –Solicitudes a un servidor. Clientes solicitando ser atendidos por una telefonista Simulaciones de cualquier situación real en la que se presente una “organización” tipo cola