Tipos de Datos Abstractos TDA COLA. Representación de una cola

Documentos relacionados
Tema 03: TAD Cola. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Pilas y Colas. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos.

Tema 7. Colas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía. {badia, bmartine,

Estructuras Dinámicas de datos.

Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES

ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C

Listas, pilas, colas

Profesor: José Miguel Rubio L.

Estructura de datos Colas

Estructura de Datos. Unidad de Aprendizaje: Unidad de Competencia II: Estructuras de Datos Lineales. M. en C. Edith Cristina Herrera Luna

Estructuras de Datos

Unidad III: Estructuras lineales

Estructuras de datos: Pilas, Colas, Listas

Un hombre caminaba por el bosque cuando vió una zorra lisiada. " Cómo hará para alimentarse?", pensó.

Algoritmos y Estructuras de Datos Pilas LIFO y Colas FIFO. Guillermo Román Díez

Pilas, Colas. Andrea Rueda. Estructuras de Datos. Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas

Tipos de Datos Abstractos

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

Guía práctica de estudio 06. Estructuras de datos lineales: Cola circular y cola doble.

UNIDAD 2. ESTRUCTURAS DE DATOS SECUENCIALES. 1. Pilas (Stacks)

Programación de sistemas Pilas y Colas

Guía práctica de estudio 05. Estructuras de datos lineales: Pila y cola.

Tipos de Datos Abstractos

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS

Capítulo. Listas, pilas y colas en C. Contenido. Introducción

Tema 3. Estructura de datos lineales. J.T.P. Maria Eugenia Valesani - Programacion 1 - Fa.Ce.Na.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

1. Una pila funciona según el método LIFO (Last In First Out ). Se define la clase Pila de la siguiente forma:

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS)

ÍNDICE 1. Índice Listas ordenadas Operaciones permitidas Pilas Operaciones permitidas...

UNIDAD 9. DATOS COMPLEJOS PILAS

Departamento de Informática Universidad de Valladolid Campus de Segovia TEMA 3: ESTRUCTURAS DINÁMICAS LINEALES. LISTAS ENLAZADAS, PILAS Y COLAS

Estructuras de Datos Clase 4 Pilas y colas

12. COLAS Introducción Fundamentos

INSTITUTO TECNOLÓGICO DE NUEVO LAREDO ING. EN SISTEMAS COMPUTACIONALES

Estructuras de datos: Pilas, Colas, Listas

Algoritmos y Estructuras de Datos Fundamentos de Programación 2 PRÁCTICA 4. Simulación de colas

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México

CONTENEDORES DE LA BIBLIOTECA

Estructura de Datos. Pilas Colas. Primer Semestre, Indice. TDA: Pilas TDA: Colas Colas de Prioridad Anillos BiColas BiColas Circulares

Estructura de Datos Tema 2. Colas. Contenido

Estructuras de datos: Pilas, Colas, Listas

Solución práctico 6 Tipos Abstractos de Datos Lista, Pila y Cola

Las FILAS. ING PEDRO BELTRÁN CANESSA Estructuras de Datos 1

Tema: Estructura Pila.

CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

Capítulo 5. LISTAS. 5.1 Listas y listas vinculadas. Una lista es una colección lineal de elementos.

Hoja de ejercicios del Tema 9

Programación 1. Diseño modular de nuevos tipos de datos en un programa. Diseño modular de un tipo de dato con estructura de cola de datos

Universidad Autónoma de Madrid Escuela Politécnica Superior

2. Con una lista ordenada, aunque la localización y eliminación es rápida el problema es en la inserción de datos pues puede ser del orden de O(n).

Tema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz

Tema 04: TAD Lista. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Taller de Programación I. Tema 08: Estructuras Dinámicas de Datos en Java

Programación TADs Lineales Lista Pila Cola

Tema 2 Tipos abstractos de datos. 2.3 Cola de números enteros.

Francisco J. Hernández López

A l g o r i t m o y E s t r u c t u r a d e D a t o s Ing. en Sistemas de Información - 1º año -

Tema 8- Implementación de Pila, Cola y. Tema 8- Implementación de Pila, Cola y Lista con Punto de Interés. Representación Eficaz de una EDA

Programación de sistemas

Elaboro: Ing Jessica Verònica Munive Flores BLOQUE II FASE 5 PROGRAMACIÓN DE PÁGINAS WEB

Tema 5. Estructura de datos Pila

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios

Colas deprioridad y heaps

Estructuras de Datos Clase 4 Pilas y colas

Estructura de Datos. Índice

Especificación de Requisitos (ERS)

Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y

Algoritmos y estructuras de datos

Programación de Sistemas GIT, GISC, GISA, GITT

TEMA 2 Estructuras de datos lineales

En las preguntas 1-30 indique la respuesta correcta. e= ninguna de las anteriores

Segundo parcial de Programación 2

Cursos Propedéuticos 2015

Colas. Carlos Delgado Kloos Dep. Ingeniería Telemática Univ. Carlos III de Madrid. Java: Colas / 1

1. Cuál es el número total máximo de nodos que tiene un árbol binario de N niveles? a. N 2-1 b. 2 N+1-1 c. 2 N d. 2 N+1 i.

Estructuras de datos en memoria principal

Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés

PROGRAMACION ALGORITMOS Y ESTRUCTURAS DE DATOS PRACTICA N 4

Capitulo V Listas Enlazadas

Unidad III. Estructuras de Datos.

TIPO DE DATO ABSTRACTO (TDA)

Tema 02: TAD Pila. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

EJERCICIOS PARA EL PRIMER PARCIAL (de exámenes pasados)

Tema: Tipos Abstractos de Datos (TAD s) en C#.

LISTAS. Prof. Ing. M.Sc. Fulbia Torres

Trabajo Práctico Nº 10 Estructuras Dinámicas: Pila y Cola.

UNIDAD 1. 1 de 45. Tercer semestre

2. ESTRUCTURAS BÁSICAS

Listas, Pilas y Colas

Estructuras de Datos y Algoritmos. TDA Cola

Colas. 5.1 Implementación

Estructuras de datos. Colecciones en C#. Arreglos, Listas, Pilas, Colas y Árboles Métodos de búsqueda y ordenamiento

Alonso Ramírez Manzanares Computación y Algoritmos 10.03

Estructuras de datos en memoria principal

Transcripción:

Tipos de Datos Abstractos TDA COLA Representación de una cola

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-firstout). El elemento con más tiempo en la cola es el que puede ser extraído. cola frente Entra Sale

Definición y Conceptos Básicos Una COLA es otro tipo especial de Lista en el cual los elementos se insertan en un extremo (el posterior) y la supresiones tienen lugar en el otro extremo denominado anterior o frente, dicho de otra forma, la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro.

Diferencia de colas y pilas en el modo entrada/salida. En las colas se realizan las inserciones al de la lista, no al principio. Por eso, se usan para almacenar datos que necesitan ser procesados según el orden de llegada. C= C (1), C(2),..., C(N) Las eliminaciones se realizan al principio de la lista frente (front), y las inserciones se realizan en el otro extremo (rear).

Operaciones básicas de colas Crear: se crea la cola vacía. Anula: Convierte la cola C en una lista vacía Frente (consultar, front): se devuelve el elemento frontal de la cola, es decir, el primero elemento que entró. Encolar (añadir, entrar, push): se añade un elemento a la cola. Se añade al de esta. Desencolar (sacar, salir, pop): se elimina el elemento frontal de la cola, es decir, el primer elemento que entró. Vacía: Devuelve verdadero si, y sólo si, C es una cola vacía.

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

Ejemplos de las colas La particularidad de una estructura de datos de cola es el hecho de que sólo podemos acceder al primer y al último elemento de la estructura. Así mismo, los elementos sólo se pueden eliminar por el principio y sólo se pueden añadir por el de la cola.

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); : }

Tipos de colas Tipos de colas: Colas de prioridad: En ellas, los elementos se atienden en el orden indicado por una prioridad asociada a cada uno. Si varios elementos tienen la misma prioridad, se atenderán de modo convencional según la posición que ocupen. Bicolas: son colas en donde los nodos se pueden añadir y quitar por ambos extremos; se les llama DEQUE (Double Ended QUEue). Para representar las bicolas lo podemos hacer con un array circular con Ini y Fin que apunten a cada uno de los extremos.

Tipos de colas Bicolas de entrada restringida: Son aquellas donde la inserción sólo se hace por el, aunque podemos eliminar al principio ó al. Bicolas de salida restringida: Son aquellas donde sólo se elimina por el, aunque se puede insertar al principio y al. Colas de prioridad: son aquellas que cumplen dos reglas: 1. De dos elementos siempre se atenderá antes al que tenga mayor prioridad. 2. Si dos elementos tienen la misma prioridad se atiende primero el que llego antes. Realización de colas basadas en apuntadores. Se mantiene un apuntador (o un cursor) al último elemento y e mantiene un apuntador al frente.

Colas circulares 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. a b c d e f g frente cola e f g frente cola h i e f g cola frente

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

Aplicaciones de las colas Ejemplos de colas en la vida real serían: personas comprando en un supermercado, esperando para entrar a ver un partido de béisbol, esperando en el cine para ver una película, una pequeña peluquería, etc. La idea esencial es que son todos líneas de espera.

Ejemplo 1: Con las Operaciones básicas: insertar, quitar_primero y primero. Realiza el siguiente ejercicio de colas circulares. Recuerda que la implementación circular devuelve y fin al principio del vector cuando rebasan la ultima posición.

1. Crear_Cola (C) 2. Insetar_en_Cola (a,c) 3. Insetar_en_Cola (b,c) Solución: 4. Insetar_en_Cola (c,c) 5. Insetar_en_Cola (d,c) 6. Quitar_Primero (C) 7. Insetar_en_Cola (e,c)

1. Crear_Cola (C) 2. Insertar_en_Cola (a,c) 3. Insertar_en_Cola (b,c) 4. Insertar_en_Cola (c,c) Solución a a b a b c 5. Insertar_en_Cola (d,c) 6. Quitar_Primero (C) 7. Insertar_en_Cola (e,c) a b c d b c d e b c d

Ejemplo 2: Con las operaciones básicas de colas, llegar de la cola inicial A a la cola B : 1 2 3 4 5 6 7 8 9 A 2 4 6 8 1 3 5 7 9 B

1.- Crear_Cola(C). 2.- Quitar_Primero(A), Sacamos el 1 3.-Insertar_en_Cola(1,C), Insertamos el uno del paso anterior 4.- Quitar_Primero(A), Sacamos el 2 5.- Insertar_en_Cola(2,B), Metemos el 2 del paso anterior a la cola B 6.-Quitar_Primero(A), Sacamos el 3 7.- Insertar_en_Cola(3,C), Insertamos el 3 en C 8.- Quitar_Primero(A), Sacamos el 4 9.-Insertar_en_Cola(4,B), Insertamos el 4 en la cola B 10.- Quitar_Primero(A), Sacamos el 5 11.-Insertar_en_Cola(5,C), Insertamos el 5 en C 12.-Qutar_Primero(A),Sacamos el 6 13.-Insertar_en_Cola(6,B), Insertamos el 6 en B 14.-Qutar_Primero(A),Sacamos el 7 15.-Insertar_en_Cola(7,C), Insertamos el 7 en C 16.-Qutar_Primero(A),Sacamos el 8 17.-Insertar_en_Cola(8,B), Insertamos el 8 en B 18.-Qutar_Primero(A),Sacamos el 9 19.-Insertar_en_Cola(9,C), Insertamos el 9 en C 20.-Qutar_Primero(C),Sacamos el 1 21.-Insertar_en_Cola(1,B), Insertamos el 1 en B 22.-Qutar_Primero(C),Sacamos el 3 23.-Insertar_en_Cola(3,B), Insertamos el 3 en B 24.-Qutar_Primero(C),Sacamos el 5 25.-Insertar_en_Cola(5,B), Insertamos el 5 en B 26.-Qutar_Primero(C),Sacamos el 7 27.-Insertar_en_Cola(7,B), Insertamos el 7 en B 28.-Qutar_Primero(C),Sacamos el 9 29.-Insertar_en_Cola(9,B), Insertamos el 9 en B Solución:

EJERCICIO: Utilizando las operaciones de colas (Crear, insertar, quitar, etc.), escribe el procedimiento para llegar de la cola Inicial a la cola Final : 1 10 2 9 3 8 4 7 5 6 Inicial 10 9 8 7 6 5 4 3 2 1 Final