Manuel Montes y Gómez Laboratorio de Tecnologías del Lenguaje

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.
Programación y Estructuras de Datos
PROGRAMACION DE Pilas o Stacks y Colas
Estructuras de datos M.I.A Daniel Alejandro García López.
Programación II Colas Igor Santos Grueiro.
Colas y Listas Enlazadas
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.
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.
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.
UNIVERSIDAD TECNOLÓGICA DE DURANGO
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.
Estructuras de datos Fundamentos de análisis y diseño de algoritmos.
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
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.
ESTRUCTURAS LINEALES “LA PILA”
OPERACIONES CON PILAS DECLARACIÓN O INICIALIZACIÓN DE LA PILA. Stack NombrePila=newStack (max);
PROGRAMACION DE Pilas o Stacks y Colas
Ficha de datos Créditos Institucionales: 8 créditos.
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.
ALGORITMOS DE PLANIFICACIÓN ADRIÁN MINGA BRYAN PIEDRA JEREMY CHAMBA.
IntroducciÓn a los Arreglos (“arrays”) en C++
Estructuras PILA - COLA - LISTA.
MANEJO DE ARRELOGS EN C Clase 8: Arreglos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Listas enlazadas particulares
Memorias Una memoria es un espacio en el cual se puede almacenar información y es análogo a un arreglo o array en programación convencional. En VHDL una.
LISTAS..
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
Listas Dinámicas.
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.
Introducción a las estructuras de datos
LENGUAJE DE PROGRAMACION “PILAS”
Ingeniero en Computación José Alfredo Cobián Campos
EL TDA COLA Estructuras de Datos. DEFINICION Abunda este concepto, en la vida cotidiana Cuando vamos al cine, para comprar las entradas Cuando estamos.
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 INTEGRANTES: JAVIER GONZALEZ JORGE LUIS SOLIS ISAC FERNANDEZ.
Pilas y Colas.
Microcontroladores Subrutinas y retardos. Subrutinas Sin subrutinas Con subrutinas Llamado a subrutina Subrutina Regreso de subrutina.
Pilas y Colas Fundamentos.
Estructuras de Datos MC Beatriz Beltrán Martínez Primavera 2018
ABSTRACCION DE DATOS   Estructura de Datos Básicos: En programación una estructurad de datos, es una forma particular de organizar datos en una computadora.
Estructuras Dinámicas
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
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.
MATRICES. ¿QUÉ ES UNA MATRIZ? Una matriz es un espacio bidimensional que se genera en la memoria del computador. Las matrices deben tener un nombre que.
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
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.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
Departamento de Ingeniería de Sistemas e Industrial
ESTRUCTURA DE DATOS. COLECCIONES DE OBJETOS Una colección de objetos es sencillamente un conjunto de cosas del mismo tipo. Algunas veces utilizamos otras.
Conjunto de programas contenidos en un núcleo o kernel que efectúan la gestión de los procesos básicos de un Sistema informático, y permite la normal.
TALLER DE CERTIFICACIÓN INTERNACIONAL
Transcripción de la presentación:

Programación y estructuras de datos Propedeútico de Ciencias Computacionales Manuel Montes y Gómez Laboratorio de Tecnologías del Lenguaje Coordinación de Ciencias Computacionales – INAOE http://ccc.inaoep.mx/~mmontesg/

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

Special Topics on Information Retrieval Definición de Pila Una pila representa una estructura lineal de datos en que se puede agregar o quitar elementos únicamente por uno de los dos extremos. En consecuencia, los elementos de una pila se eliminan en el orden inverso al que se insertaron. Debido a está característica, se le conoce como estructura LIFO (last input, first output). Entra Sale Tope Special Topics on Information Retrieval

Representaciones de pilas Entra Sale Las pilas no son estructuras fundamentales de datos, es decir, no están definidas como tales en los lenguajes de programación. Para su representación requieren de otras EDs, como: arreglos y listas La desventaja de implementar una pila mediante un arreglo es que este último es de tamaño fijo, mientras que la pila es de tamaño dinámico. MAX Tope Arreglo[MAX] Special Topics on Information Retrieval

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 1 4 1 1 1 1 1 4 4 4 4 4 4 push(4) push(1) push(1) pop()

Special Topics on Information Retrieval Errores comunes Al utilizar arreglos para implementar pilas se tiene la limitación de que se debe reservar el espacio en memoria con anticipación. Una vez dado un máximo de capacidad a la pila no es posible insertar un número de elementos mayor que el máximo establecido. Si esto ocurre, es decir, si la pila está llena y se intenta insertar un nuevo elemento, se producirá un error conocido como desbordamiento –overflow. Otro error que se puede presentar es tratar de eliminar un elemento de un pila vacía. Este tipo de error se le conoce como subdesbordamiento –underflow. Special Topics on Information Retrieval

Special Topics on Information Retrieval Ejercicio 2 Escriba el pseudocódigo de las operaciones push y pop de una pila implementada mediante un arreglo con capacidad máxima igual a MAX. Use la variable tope para indicar la posición del último elemento de la pila Cuide que no se den los errores de overflow y underflow Tiempo máximo = 30 min Special Topics on Information Retrieval

Implementación con arreglos en C #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 PUSH POP 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; }

Implementación en python (con una lista) Special Topics on Information Retrieval

Aplicaciones de las pilas Llamadas a subprogramas Recursividad Tratamiento de expresiones aritméticas Ordenación Otras aplicaciones: Navegador Web: se almacenan los sitios previamente visitados Editores de texto: los cambios efectuados se almacenan en una pila.

Special Topics on Information Retrieval Ejercicio 3 Escriba el pseudocódigo de un programa que imprime el número más grande contenido en una lista L de n números. Tiempo máximo = 5 min Special Topics on Information Retrieval

La estructura de datos COLA Su nombre se deriva de la metáfora de una cola de personas en una taquilla, donde los recién llegados se sitúan al final, y la salida es por delante. La inserción y extracción de elementos de la cola siguen el principio FIFO (first-in-first-out): primer dato en entrar es el primero en salir. Entra cola frente Sale

Representaciones de colas Entra Al igual que las pilas, para su representación las colas también requieren de otras EDs, como: arreglos y listas. La desventaja de implementar una pila mediante un arreglo es que este último es de tamaño fijo, mientras que la pila es de tamaño dinámico. MAX cola frente Sale Special Topics on Information Retrieval

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 a b a b a b c a b c b c b c Apuntadores al frente y a la cola No es necesario mover todos los elementos

Special Topics on Information Retrieval Ejercicio 4 Escriba el pseudocódigo de las operaciones enqueue y dequeue de una cola implementada mediante un arreglo con capacidad máxima igual a MAX. Cuide que no se den los errores de overflow y underflow Tiempo máximo = 30 min Special Topics on Information Retrieval

Implementación con arreglos en C #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); : Una cola es una colección ordenada de objetos. En C, los arreglos permiten almacenar colecciones ordenadas. Misma desventaja que las pilas: los arreglos tienen tamaño fijo.

Las operaciones básicas ENQUEUE DEQUEUE 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; }

Ejemplo a a a b a b a b c a b c b c b c Apuntadores al frente y a la cola No es necesario mover todos los elementos Cuando se llegue al final del arreglo podría haber muchos espacios libres al inicio de la lista, ¿qué hacer para usarlos?

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

Special Topics on Information Retrieval Ejercicio 5 Modifique el siguiente código de inserción de dato en cola, para tener una implementación de cola circular. Tiempo máximo = 20 min ENQUEUE void enqueue(struct Queue* ps, int i) { if (ps->rear == (QUEUESIZE -1)) printf(“Full queue\n"); else { ps->rear++; ps->nodes[ps->rear] = i; } #define QUEUESIZE 100 struct Queue{ int front; int rear; int nodes[QUEUESIZE]; }; Special Topics on Information Retrieval