COLAS, IMPLEMENTACIÓN A PARTIR DE LISTAS Y PARA PILAS

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 04 Árboles BINARIOS.
ESTRUCTURA DE DATOS Unidad 03 COLAS.
Pilas y Colas Fundamentos Estructuras de Datos (Programación 2)
ÁRBOLES EN C UNIVERSIDAD “ALONSO DE OJEDA” Facultad de Ingeniería
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.
Estructura de Datos En C++
Igor Santos Grueiro. Muchos objetos tienen CLAVE.
Modelo de procesos de dos estados
PROGRAMACION DE Pilas o Stacks y Colas
PROGRAMACION DE ESTRUCTURAS DE DATOS
Algoritmos Aleatorizados
Arreglos Ing. Nahiby Castillo.
Estructuras de Datos Especificación formal de Listas.
M.I.A Daniel Alejandro García López
Estructuras de datos M.I.A Daniel Alejandro García López.
Programación II Colas Igor Santos Grueiro.
Colas y Listas Enlazadas
ÁRBOLES DE EXPRESION.
Tema Nº4.
Estructuras dinámicas de datos, TAD Lista, parte 2
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.
Listas circulares.
PROGRAMACION II.  Es un conjunto de datos no necesariamente del mismo tipo, los cuales se podrán manipular o realizar cualquier operación sobre cada.
C++ LISTAS C++ 11/04/2017 Ing. Edgar Ruiz Lizama.
Árboles, montículos y grafos Cola de prioridades, montículos
POR: Meza Guevara Sandra Fabiola Contreras Meléndez Damariz Figueroa Cisneros Ricardo UNIVERSIDAD TECNOLÓGICA DE DURANGO TECNOLÓGIAS DE LA INFORMACIÓN.
PILAS, COLAS, RECURSIVIDAD.
ESTRUCTURAS DE DATOS I Conocer, comprender y analizar algunos de los principales tipos de estructuras de datos.
Estructuras.
Clase 10: Estructuras de datos y arreglos.
ELO3201 Contenedores Biblioteca Estándar de Templates Agustín J. González ELO320 Contenido Contenedores: Vector, List, Deque, Stack, Queue, Priority Queue,
Aplicación de estructuras de datos
Árboles Binarios Estructuras de Datos.
República Bolivariana de Venezuela. Ministerio del PP para la Defensa. Universidad Nacional Experimental de la Fuerza Armada. Cátedra: Instrucción Militar.
Universitarios: Ricardo Gonzales Jimenez Wilfredo Coca Reinaldo Yohan Docente: Lic. Israel Torrez Valverde Tema: Listas doblemente Enlazadas.
Memoria estática versus dinámica con Estructuras
Programación en C para electrónicos
Listas Ligadas Simples. Definíción I  Es, en sencillas palabras. un grupo de datos organizados secuencialmente, pero a diferencia de los arreglos, la.
Diseño de Algoritmos. Curso J.L. Leiva O. TEMA3TEMA3 TEMA3TEMA3 Estructuras Dinámicas Contenido del Tema Profesor: José Luis Leiva Olivencia. Despacho:
Punteros Recomendado: 1. Nivelación Funciones
Son estructuras de datos que almacenan y recuperan sus elementos atendiendo a un estricto orden (LIFO Last – in, first –out Ultimo en entrar – primero.
INSTITUTO TECNOLOGICO DE APIZACO
UNIDAD IV. PILAS, COLAS, RECURSION APLICADAS A LENGUAJE C.
Teoría de lenguajes y compiladores
Ayudantia 3: Pilas- Colas
Árboles Binarios de Búsqueda (ABB)
IMPLEMENTACION DE COLAS MEDIANTE LISTAS
Lic. En C.C. Ann Margareth Meza Rodríguez
Estructura de Datos..
Pilas y Colas Cursos Propedéuticos 2006 Programación y Estructuras de Datos Manuel Montes Claudia Feregrino
Estructura: COLA Profesor: Ing. Erick López Ch. M.R.I.
PROGRAMACION DE Pilas o Stacks
MIA - Grupo 5 Unidad 2.
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.
Laboratorio de programación
ESTRUCTURAS LINEALES “LA PILA”
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
PUNTEROS. Los punteros son de amplia utilización en programación y muchos lenguajes permiten la manipulación directa o indirecta de los mismos. Su razón.
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.
Transcripción de la presentación:

COLAS, IMPLEMENTACIÓN A PARTIR DE LISTAS Y PARA PILAS

Una cola es un tipo especial de lista abierta en la que sólo se puede insertar nodos en uno de los extremos de la lista y sólo se pueden eliminar nodos en el otro. Además, como sucede con las pilas, las escrituras de datos siempre son inserciones de nodos, y las lecturas siempre eliminan el nodo leído.

Este tipo de lista es conocido como lista FIFO (First In First Out), el primero en entrar es el primero en salir.

El nodo típico para construir colas es el mismo que utilizamos para la construcción de listas y pilas: struct nodo { int dato; struct nodo *siguiente; };

Operaciones básicas con colas:   De nuevo nos encontramos ante una estructura con muy pocas operaciones disponibles. Las colas sólo permiten añadir y leer elementos: Añadir: Inserta un elemento al final de la cola. Leer: Lee y elimina un elemento del principio de la cola.

Añadir elemento en una cola vacía: Partiremos de que ya tenemos el nodo a insertar y, por supuesto un puntero que apunte a él, además los punteros que definen la cola, primero y último que valdrán NULL:

El proceso es muy simple, bastará con que: nodo->siguiente apunte a NULL. Y que los punteros primero y último apunten a nodo.

Añadir elemento en una cola no vacía: De nuevo partiremos de un nodo a insertar, con un puntero que apunte a él, y de una cola, en este caso, al no estar vacía, los punteros primero y último no serán nulos:

El proceso sigue siendo muy sencillo: Hacemos que nodo->siguiente apunte a NULL. Después que ultimo->siguiente apunte a nodo. Y actualizamos último, haciendo que apunte a nodo.

Añadir elemento en una cola, caso general: Para generalizar el caso anterior, sólo necesitamos añadir una operación: Hacemos que nodo->siguiente apunte a NULL. Si ultimo no es NULL, hacemos que ultimo->siguiente apunte a nodo. Y actualizamos último, haciendo que apunte a nodo. Si primero es NULL, significa que la cola estaba vacía, así que haremos que primero apunte también a nodo.

Leer un elemento en una cola con más de un elemento: Usaremos un puntero a un nodo auxiliar:

Hacemos que nodo apunte al primer elemento de la cola, es decir a primero. Asignamos a primero la dirección del segundo nodo de la pila: primero->siguiente. Guardamos el contenido del nodo para devolverlo como retorno, recuerda que la operación de lectura en colas implican también borrar. Liberamos la memoria asignada al primer nodo, el que queremos eliminar.

Leer un elemento en una cola con un solo elemento: También necesitamos un puntero a un nodo auxiliar:

Hacemos que nodo apunte al primer elemento de la pila, es decir a primero. Asignamos NULL a primero, que es la dirección del segundo nodo teórico de la cola: primero->siguiente. Guardamos el contenido del nodo para devolverlo como retorno, recuerda que la operación de lectura en colas implican también borrar. Liberamos la memoria asignada al primer nodo, el que queremos eliminar. Hacemos que ultimo apunte a NULL, ya que la lectura ha dejado la cola vacía.

Leer un elemento en una cola caso general: Hacemos que nodo apunte al primer elemento de la pila, es decir a primero. Asignamos a primero la dirección del segundo nodo de la pila: primero->siguiente. Guardamos el contenido del nodo para devolverlo como retorno, recuerda que la operación de lectura en colas implican también borrar. Liberamos la memoria asignada al primer nodo, el que queremos eliminar. Si primero es NULL, hacemos que ultimo también apunte a NULL, ya que la lectura ha dejado la cola vacía.

Colas de Prioridades Una cola de prioridades es una estructura de datos en la que 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

Tipos  Colas de prioridades con ordenamiento ascendente: en ellas los elementos se insertan de forma arbitraria, pero a la hora de extraerlos, se extrae el elemento de menor prioridad. Colas de prioridades con ordenamiento descendente: son iguales que la colas de prioridad con ordenamiento ascendente, pero al extraer el elemento se extrae el de mayor prioridad.