Estructura de Datos Tema 2. Colas. Contenido

Documentos relacionados
Contenido. Estructura de Datos Tema 1: Pilas. 1. Definición y operaciones. 2. Implementación estática. 3. Implementación dinámica. 4.

Estructura de Datos Tema 6. Árboles. Contenido 14/06/2018

Estructura de datos Colas

ESTRUCTURA DE DATOS: Tema 3. Recursividad

ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C

1.- IDENTIFICACION: PYPE-01

ESTRUCTURA DE DATOS: Tema 3. Recursividad

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

Tipos de Datos Abstractos

Tema 4. Estructuras Dinámicas

ESTRUCTURA DE DATOS: Tema 5. Ordenamiento y Búsqueda

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

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

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

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

Especificación de Requisitos (ERS)

Estructura de Datos L I S T A

UNIVERSIDAD DE GUADALAJARA

Estructuras Enlazadas AyED UTN-BA

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

PROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C

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

Capitulo V Listas Enlazadas

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 2: Clases y Objetos

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

ELO320 Estructuras de Datos y Algoritmos. Listas. Tomás Arredondo Vidal

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

PROGRAMACION ESTRUCTURADA: Tema 3. Funciones

Tipos de Datos Abstractos

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

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

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

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

CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS

Lista Simple con Puntero al Principio y Puntero al Final

ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS)

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C

Estructuras de Datos Clase 4 Pilas y colas

Estructuras de Datos Dinámicas: Listas

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

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

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS)

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

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++

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 -

Son aquellas que se implementan usando vectores por lo que tienen un número de elementos limitado.

Estructuras 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 -

CI2126 PRÁCTICA 9: TAD COLA. 1) Implemente las operaciones C_Insert y C_Remove del TAD COLA usando a. un arreglo. La estructura sería:

Tema 5. Tipos Abstractos de Datos

Estructuras de Datos Dinámicas: Tipo de Dato Abstracto parte I. Programación I Departamento de Informática Universidad Nacional de San Luis Argentina

UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL MÉTODOS DIDÁCTICOS EVALUACIÓN

Segundo parcial de Programación 2

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

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

Dr. Oscar Ricardo droscarbruno.wordpress.com

Biblioteca de templates. template <typename T> void eliminar(t arr[], int& len, int pos);

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

Estructura de datos. Carrera: SCC Participantes

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

Una clave Definición informal La clave debe contener una secuencia de una o más letras seguidas por uno o más dígitos

Algoritmos y estructuras de datos

12. COLAS Introducción Fundamentos

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda

Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS

Cursos Propedéuticos 2015

Tipo de dato Abstracto (Tad) PILAS COLAS

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010

ESTRUCTURAS DINÁMICAS DE DATOS (LISTAS)

1. El Tipo Abstracto de Datos.

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

UNIDAD 9. DATOS COMPLEJOS PILAS

Tema 10: Árbol binario de búsqueda

Estructura de Datos. Centro Universitario UAEM Valle de México. Unidad II. Estructuras de Datos Lineales - Listas

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

Estructuras de datos: Pilas, Colas, Listas

Existen varios tipos de árboles: 5.1 Árboles binarios

Sobrecarga de operadores, listas

LISTAS ENLAZADAS FUNDAMENTOS TEORICOS

Tema 2: Lenguajes de Programación de Sistemas: C

Programación de sistemas Árboles

Programación Estructuras Arborescentes

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

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

Estructura de datos y de la información Boletín de problemas - Tema 10

Listas. Programación en C LISTAS. Prof. Álvaro Sánchez Miralles. Programación en C. Listas. Objetivos

Uno de los conceptos más útiles en ciencias de la computación es la pila.

ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS

Notas de estructura de datos con lenguaje C. Estructuras de datos dinámicas

6. El TDA Lista Implementación con listas enlazadas. es de tipo genérico T. Pueden existir elementos repetidos (a diferencia de los conjuntos).

Listas, pilas, colas

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

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

Estructuras de datos en memoria principal

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

Listas. Rafael Palacios May/2005

Transcripción:

Estructura de Datos Tema 2. Colas Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx Contenido 1. Definición y operaciones 2. Implementación estática 3. Implementación dinámica 4. Colas de prioridad 5. Casos de estudio 2 1

1. Definición y operaciones La cola es una colección ordenada de elementos de la que se pueden borrar elementos en un extremo (llamado el frente de la cola) o insertarlos por el otro (llamado el final de la cola). El primer elemento insertado en la cola, es el primero en ser eliminado; razón por la que a las colas se les conoce como una estructura de datos FIFO (por firstin, first-out) 3 1. Definición y operaciones Insertar un elemento a la cola insertar(&ini,&fin,elemento); Borrar un elemento de la cola elemento= borrar(&ini,&fin); Determinar si la cola esta vacía band=vacia(ini); Determinar si la cola esta llena band=llena(ini); Listar la cola listar(ini); 4 2

Aplicaciones con colas La fila de clientes en el banco, En la parada de camiones, Cola para cargar gasolina, para pagar casetas de cobro etc. Cola de alumnos en la biblioteca, o librería. 5 2. Implementación estática #define MAX 5 typedef struct{ int frente, final; int elementos[max]; tipocola; int main(){ tipocola cola; Representaciones de colas: Como una línea recta (q.frente=-1, q.final=0) normal Como una recta que cuando se elimine un elemento se recorra el resto de la cola al principio Como un círculo (q.frente=q.final=max) 6 3

2. Implementación estática de una cola en línea recta //función que determina si la cola está llena int llena(tipocola colat){ int bandera=0; if (colat.final==max) bandera= 1; return bandera; 7 2. Implementación estática de una cola en línea recta void insertar(tipocola *colat, int dato){ colat->datos[colat->final]=dato; (colat->final)++; 8 4

2. Implementación estática int vacia(tipocola colat){ int bandera=0; if ((colat.frente)+1 == colat.final) bandera= 1; return bandera; 9 2. Implementación estática int eliminar(tipocola *colatemp){ int x; colatemp->frente++; x=colatemp->datos[colatemp->frente]; return x; 10 5

3. Implementación dinámica typedef struct nodo { int info; struct nodo *sig; tiponodo; cola cola Insertar a la cola vacía, el 3, 2 y 8. ini fin 3 ini fin typedef struct cola{ struct nodo * ini; struct nodo * fin; tipocola; cola ini fin typedef tipocola * tipocolaptr; cola typedef tiponodo * tiponodoptr; ini fin void insertar(tipocolaptr colat, int dato); int main(){ tipocola cola={null;... 3 2 3 2 8 11 3. Implementación dinámica void insertar(tipocolaptr colat, int dato){ tiponodoptr nuevo; nuevo=(tiponodoptr)malloc(sizeof(tiponodo)); if(nuevo==null) printf("no hay memoria\n"); else { nuevo->dato=dato; nuevo->sig=null; if(colat->ini==null) colat->ini=nuevo; else colat->fin->sig=nuevo; colat->fin=nuevo; 12 6

3. Implementación dinámica int eliminar(tipocolaptr colat) { tiponodoptr temp; int dato; temp=colat->ini; dato=temp->dato; if(colat->ini==colat->fin) colat->fin=temp->sig; colat->ini=temp->sig; free(temp); return dato; 13 4. Colas de prioridad Tanto la pila como la cola son estructuras de datos cuyos elementos están ordenados conforme se insertaron. La cola de prioridad es una estructura de datos en la que el ordenamiento intrínseco de los elementos determina los resultados de sus operaciones básicas Tipos de colas de prioridad: Cola de prioridad ascendente Cola de prioridad descendente 14 7

4. Colas de prioridad Cola de prioridad ascendente: Colección de elementos en la que pueden insertarse elementos de manera arbitraria y de la que puede eliminarse sólo el elemento menor. Cola de prioridad descendente: Es similar a la de prioridad ascendente, pero sólo permite la eliminación del elemento mayor. 15 4. Colas de prioridad Implementación dinámica typedef struct nodo{ int prioridad; //ej. 1,2 char nombre[20]; struct nodo * sig; tiponodo; typedef struct{ tiponodo *ini; tiponodo *fin; tipocola; 16 8

4. Colas de prioridad 17 Casos de estudio Sistema de un supermercado Ventanilla en un banco 18 9

Referencias 1. Tenenbaum, Aaron & Langsam, Yedidyah & Augenstein, Moshe Estructuras de Datos en C. Prentice-Hall, México 1997. 2. Deitel & Deitel Como programar en C/C++. Prentice-Hall, México 3. Wirth, Niklaus Algoritmos y estructura de Datos. Prentice-Hall, México. 19 10