PILAS Y COLAS INTEGRANTES: JAVIER GONZALEZ JORGE LUIS SOLIS ISAC FERNANDEZ.

Slides:



Advertisements
Presentaciones similares
PILA.
Advertisements

Pilas y Colas Fundamentos Estructuras de Datos (Programación 2)
Ejemplo de Programa C++
TDA LISTA ESTRUCTURAS DE DATOS.
Programación y Estructuras de Datos
Estructuras de datos M.I.A Daniel Alejandro García López.
Programación II Colas Igor Santos Grueiro.
ÁRBOLES BINARIOS DE BÚSQUEDA
Vectors (Vectores) Agustin J. González ELO329. Contenidos Qué es un vector? Declaración de Objetos Vectores Inserción y eliminación de items Uso de sub-índices.
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.
AED3: Algoritmos y Estructuras de Datos 3.  Uno de los conceptos mas utiles en computacion es la pila o stack  Es un conjunto de elementos, en la que:
Pilas y Colas Estructuras de Datos.
TDA PILA ESTRUCTURAS DE DATOS.
EL TDA COLA Estructuras de Datos.
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.
Son estructuras de datos que almacenan y recuperan sus elementos atendiendo a un estricto orden (LIFO Last – in, first –out Ultimo en entrar – primero.
Estructuras de datos Fundamentos de análisis y diseño de algoritmos.
Estructura de Datos..
Pilas y Colas Cursos Propedéuticos 2006 Programación y Estructuras de Datos Manuel Montes Claudia Feregrino
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.
ESTRUCTURAS LINEALES “LA PILA”
ARREGLOS O ARRAYS.
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.
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.
GRAFOS ESTRUCTURA DE DATOS. INTRODUCCION Los grafos son estructuras de datos Representan relaciones entre objetos Relaciones arbitrarias, es decir No.
Introducción a punteros en C
Estructura de Datos Luis Humeau Waldi Saturno
INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO PUERTO. MATERIA: Estructura De Datos TIPO: Presentación (Unidad 3 Estructura lineales ) DOCENTE: MTL.
EL TDA COLA Estructuras de Datos. DEFINICION Abunda este concepto, en la vida cotidiana Cuando vamos al cine, para comprar las entradas Cuando estamos.
Oscar Bedoya. Edificio 331, 2º piso, E.I.S.C. Estructuras de datos y algoritmos.
IntroducciÓn a los Arreglos (“arrays”) en C++
Estructuras PILA - COLA - LISTA.
MANEJO DE ARRELOGS EN C Clase 8: Arreglos.
Montículos Binarios (Binary Heaps)
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
Searching data in Arrays
Estructuras de datos y algoritmos
PILAS. Operaciones de las Pilas Operaciones que se pueden realizar con una pila son: -PUSH (pila, elemento) -POP (pila) -VACIA (pila)
Aprendiendo Java Pilas y Colas Por Juan Astudillo.
OMRI 2017 *inserta fecha aquí*
Introducción a las estructuras de datos
LENGUAJE DE PROGRAMACION “PILAS”
Ingeniero en Computación José Alfredo Cobián Campos
Manejo de Punteros y objetos en memoria dinámica en C++
EL TDA COLA Estructuras de Datos. DEFINICION Abunda este concepto, en la vida cotidiana Cuando vamos al cine, para comprar las entradas Cuando estamos.
CONJUNTOS ESTRUCTURAS DE DATOS.
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.
PILAS Y COLAS INTEGRANTES: JAVIER GONZALEZ JORGE LUIS SOLIS ISAC FERNANDEZ.
Pilas y Colas.
Pilas y Colas Fundamentos.
Manuel Montes y Gómez Laboratorio de Tecnologías del Lenguaje
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
GRAFOS ESTRUCTURAS DE DATOS.
TEMAS *Arboles Binarios *listas Abiertas y Cerradas - Inserción - Recorrido - Eliminación *Pilas - Concepto - Inserción - Recorrido -
EL TDA COLA Estructuras de Datos.
Curso de Programación Estructurada
Listas ligadas Dra. María de Lourdes López García
Colas ESTRUCTURA DE DATOS. Colas Definición. Es una lista lineal de elementos en la que las operaciones de insertar y eliminar se realizan en diferentes.
GRAFOS ESTRUCTURA DE DATOS. INTRODUCCION Los grafos son estructuras de datos Representan relaciones entre objetos Relaciones arbitrarias, es decir No.
Universidad Autónoma del Estado de México
Árboles Binarios Estructuras de Datos.
Pilas y colas. República Bolivariana de Venezuela.
COLAS O LINEA DE ESPERA EN C# SHARP. ¿QUE ES UNA COLA O LINEA DE ESPERA?  Es una estructura de datos que almacena elemento en una lista y permite acceder.
Manejo de Punteros y objetos en memoria dinámica en C++
IPOO 2 cuatrimestre 2018 Departamento de Ciencias e Ingeniería
Árboles Binarios Estructuras de Datos. Las estructuras dinámicas son las en la ejecución varia el número de elementos y uso de memoria a lo largo del.
Departamento de Ingeniería de Sistemas e Industrial
TALLER DE CERTIFICACIÓN INTERNACIONAL
Transcripción de la presentación:

PILAS Y COLAS INTEGRANTES: JAVIER GONZALEZ JORGE LUIS SOLIS ISAC FERNANDEZ

LA PILA Uno de los conceptos mas utiles en computacion es la pila o stack Es un conjunto de elementos, en la que: Los elementos se añaden y se remueven por un solo extremo Este extremo es llamado “tope” de la pila La ultima en llegar, sera la primera en salir: LAST IN, FIRST OUT LIFO Ejemplo: Cuando un empleado se va de vacaciones, le llega correo a su escritorio. Las cartas se van “apilando”. Al regresar de vacaciones, la ultima carga en llegar, sera la primera que revisara Al terminar de revisarla, la nueva carta del tope de la pila habra cambiado Del “pilo” de cartas, la mas nueva que queda, sera la siguiente en ser revisada

TDA PILA: DEFINICION Dada una Pila llamada S ¿Qué datos serian importantes conocer sobre la Pila? ¿Y que operaciones podríamos efectuar a la misma? Push(s,elemento1) Elemento 1 Tope o Cima Push(s,elemento2) Elemento 2 Push(S,elemento3) Elemento 3 Pop(S) EstaVacia? No Si Al revisar c/carta, se la “sacaba” de la pila elemento = pop(s) La operación pop remueve el elemento Tope de la pila y lo retorna. La pila disminuye su tamaño Usemos el ejemplo del correo: Al acumularse, Cada carta(elemento), era “metida” a la pila: push(s,elemento) La operación push aumenta un elemento a la pila, y esta aumenta en su tamaño

EJEMPLO

COLAS Abunda este concepto, en la vida cotidiana Cuando vamos al cine, para comprar las entradas Cuando estamos en el supermercado, en el banco, etc. Como funciona Se puede decir que la cola tiene 2 extremos FRENTE, Y FINAL La computadora las utiliza: Para manejar la impresión de documentos, tiempo compartido, etc. Queue -> Cola Cada documento que se manda a imprimir es “encolado”, uno a uno es enviado a la impresora Frente Final Frente Todo el que llega se ubica al final de la cola Todo el que sale, lo hace por el frente de la cola La cola es por turno El primero en llegar, tiene la seguridad de que será el primero en salir: FIRST IN FIRST OUT -> FIFO

AJUSTANDOSE MEJOR A LA COLA Dijimos, una cola tiene dos extremos Frente y Final Siempre debemos llevar “control” de esas dos posiciones La estructura que definiría el nuevo TDA typedef struct{ ArrayU Datos; int Frente; int Final; } LsCont; Ya no se pueden insertar mas elementos, aunque hay espacio atrás! Cuando la cola recién comienza, El Frente es el índice inicial del arreglo: 0 El Final, como no hay, es –1 La cola esta vacía Si Frente > Final La cola esta llena Si Final == MAX –1 A medida que se ingresan elementos El Final aumenta Cuando se eliminan El Frente, se mueve hacia delante A 0 B 1 C MAX = 7 FrenteFinal 0 B 1 C 2 D 3 E C 2 D 3 E 4 F 5 G 6 FrenteFinalFrenteFinal QDesEncolar(Q); QEnColar(Q,’D’); QEnColar(Q,’E’); QDesEncolar(Q); QEnColar(Q,’F’); QEnColar(Q,’G’);

COMO RESOLVER EL PROBLEMA Como vimos esta estrategia no es optima, se desperdicia espacio libre El problema es al DesEnColar elementos Usando arreglos lineales, hay dos posibles soluciones: Retroceder con cada DesEncolamiento Al remover un elemento, no mover el Frente hacia delante Mas bien, hacer que todos los elementos retrocedan una posición Así no se desperdicia un “puesto” vacio En esta estrategia el Frente nunca se mueve, S iempre es 0 El Final disminuye en una posición Cuando la Cola este Llena, Retroceder Cuando Final llegue a su limite, Retroceder todos los elementos hasta el inicio del arreglo El Frente, que aumento durante el EnColamiento vuelve a ser 0 El Final disminuye el numero de “espacios vacios” que habian A 0 B 1 C 2 D 3 4 A 0 B 1 C FinalFrenteFinal B 0 C 1 D Frente Final A 0 B 1 C 2 D B 1 C 2 D 3 4 Frente 01 C 2 D C 2 D 3 E 4 Final El Final llego a su limite C 0 D 1 E FrenteFinal C 0 D DesEnCola(q); EnCola(q,’D’); DesEnColar(q); DesEnCola(q); EnColar(q,’E’);

//insertar elementos en una cola #include using namespace std; struct nodo{ int dato; nodo *siguiente }; //prototipos de la funcion void insertarcola(nodo *&,nodo *&,int); bool cola_vacia(nodo *); int main(){ nodo *frente = Null; nodo *fin = Null; int dato; cout<<"digite un numero:"; cin>>dato; insertarcola(frente,fin,dato);

//funcion para insertar elementos en una cola void insertarcola(nodo *&frente,nodo *&fin,int n){ nodo *nuevo_nodo=new nodo(); nuevo_nodo->dato=n; nuevo_nodo->siguiente=Null; if(cola_vacia(frente)){ frente= nuevo_nodo; } else{ fin->siguiente = nuevo_nodo; } fin = nuevo_nodo; cout<<"elemento"<<n<<"insertado a cola correctamente\n"; } //funcion para saber si la cola esta vacia bool cola_vacia(nodo *frente){ return (frente==Null)? true : false; }

Supongamos que queremos construir una pila para almacenar números enteros. Haremos pruebas intercalando varios "push" y "pop", y comprobando el resultado. Creamos un nodo para el valor que colocaremos en la pila. Hacemos que nodo->siguiente apunte a Pila. Hacemos que Pila apunte a nodo.

1.Hacemos que nodo apunte al primer elemento de la pila, es decir a Pila. 2.Asignamos a Pila la dirección del segundo nodo de la pila: Pila- >siguiente. 3.Guardamos el contenido del nodo para devolverlo como retorno, recuerda que la operación pop equivale a leer y borrar. 4.Liberamos la memoria asignada al primer nodo, el que queremos eliminar.