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

Tamaño: px
Comenzar la demostración a partir de la página:

Download "ELO320 Estructuras de Datos y Algoritmos. Stacks y Colas. Tomás Arredondo Vidal"

Transcripción

1 ELO320 Estructuras de Datos y Algoritmos Stacks y Colas Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, ISBN material del curso ELO320 del Prof. Leopoldo Silva material en el sitio 6: Stacks 1

2 6-Stacks y Colas 6.1 Stacks: definiciones y operaciones 6.2 Stacks: implementación 6.3 Colas: definiciones y operaciones 6.4 Colas: implementación 6: Stacks 2

3 Definiciones y operaciones Un stack (o pila) es una lista restringida, en cuanto a operaciones, ya que sólo permite inserciones y descartes en un extremo (el tope del stack). Tiene gran utilidad al ser usado para implementar variables automáticas, implementar funciones recursivas, para evaluar balance de paréntesis entre otras. Operaciones posibles sobre stacks incluyen: Empujar en el stack o Push Sacar del stack o Pop Leer el primer elemento del stack o Read 6: Stacks 3

4 6-Stacks y Colas 6.1 Stacks: definiciones y operaciones 6.2 Stacks: implementación 6.3 Colas: definiciones y operaciones 6.4 Colas: implementación 6: Stacks 4

5 Stacks: Implementación En general la implementación de las operaciones de inserción y descarte usando arreglos son costosas, en comparación con nodos enlazados vía punteros, porque es necesario desplazar el resto de las componentes después de una inserción o descarte Otro beneficio de usar punteros es que el stack puede crecer dinámicamente 6: Stacks 5

6 Stacks: Implementación usando arreglos #ifndef STACK_H #define STACK_H typedef int Item; // Item almacenado es un int void StackInit(int); int StackEmpty(void); int StackFull(void); void StackPush(Item); Item StackPop(void); void StackDestroy(void); #endif /* STACK_H */ 6: Stacks 6

7 Stacks: Implementación usando arreglos (cont) #include stack.h static Item * stack; // puntero al inicio de la zona del stack static int NumItems; // numero items en el stack static int MAXN; // Máxima capacidad del stack void StackInit(int max) { stack = malloc(max*sizeof(item) ); //se solicita arreglo. if (stack == NULL) exit(1); NumItems = 0; MAXN=max; 6: Stacks 7

8 Stacks: Implementación usando arreglos (cont) int StackEmpty(void) { return(numitems == 0) ; //Retorna True o 1 si stack vacío int StackFull(void) { return(numitems == MAXN) ; //Ret. True si stack lleno //se puede empujar algo al stack si no está lleno. void StackPush(Item item) { if (!StackFull() ) stack[numitems ++] = item; 6: Stacks 8

9 Stacks: Implementación usando arreglos (cont) Item StackPop(void) { if( StackEmpty() ) { printf("error. Extracción de stack vacio\n"); exit(1); else return ( stack[--numitems] ) ; void StackDestroy(void) { free(stack); 6: Stacks 9

10 Ejemplo: Balance de Parentesis Es útil poder detectar si es que los paréntesis en un archivo fuente están o no correctamente balanceados Ejemplo: a + (b + c) * [(d + e])/f Seudo-código usando un stack: Crear el stack. Mientras no se ha llegado al final del archivo de entrada: Descartar símbolos que no necesiten ser balanceados. Si es un paréntesis de apertura: empujar al stack. Si es un paréntesis de cierre, efectuar un pop y comparar. Si son de igual tipo continuar Si son de diferente tipo: avisar el error. Si se llega al fin de archivo, y el stack no esta vacío: avisar error. Destruir el stack. 6: Stacks 10

11 Ejemplo: Expresiones en notacion Polaca Inversa Las expresiones aritméticas que generalmente escribimos están en notación in situ o fija. En esta notación los operadores se presentan entre dos operandos; por ejemplo: * 4. Esta notación no explica el orden de precedencia, esto puede resolver con reglas y con paréntesis: ( ) * 4 La Reverse Polish Notation inventada por Jan Lukasiewicz se usa en calculadoras HP resuelve esto. En notación RPN el operador sigue a los operandos: * que en in situ corresponde a: ( ) * 4 6: Stacks 11

12 Ejemplo: Expresiones en notacion Polaca Inversa (cont) (3 + 5) * (7-2) puede escribirse: * Leyendo la expresión en RPN se realiza con las siguientes operaciones: Push 3 en el stack. Push 5 en el stack. El 5 está en el tope, es el último en entrar: (3, 5) Se aplica la operación + la cual saca los dos números del tope del stack, los suma y coloca el resultado en el tope: (8) Push 7 en el stack: (8, 7) Push 2 en el stack: (8, 7, 2) Se efectúa la operación con los dos números en el tope. Éste contiene ahora (8, 5) Se efectúa la operación *el stack contiene ahora (40). 6: Stacks 12

13 Ejemplo: Expresiones en notacion Polaca Inversa (cont) Seudo-código While ( no se haya leído el símbolo fin de archivo EOF) { leer un símbolo; Si es número: empujar el valor del símbolo en el stack Si es un operador: { Efectuar dos pop en el stack; Ejecutar operación sobre los números; Empujar el resultado en el stack; Retornar contenido del tope del stack como resultado; 6: Stacks 13

14 Ejemplo: Conversión de in situ a Polaca Inversa Es útil poder convertir las expresiones infijas a RPN para poder evaluarlas en un stack. Para especificar el algoritmo es preciso establecer las reglas de precedencia de operadores: La más alta prioridad está asociada a los paréntesis, los cuales se tratan como símbolos Prioridad media tienen la operaciones de multiplicación y división La más baja la suma y resta. Se asume solamente la presencia de paréntesis redondos en expresiones. Como la notación polaca inversa no requiere de paréntesis, éstos no se sacarán hacia la salida. 6: Stacks 14

15 Ej: While ( no se haya leído el símbolo fin de archivo EOF) { leer un símbolo; Si es número: enviar hacia la salida; Si es el símbolo ) : no sacar del stack hacia la salida, hasta encontrar (, el cual debe copiarse hacia la salida. Si es operador o el símbolo ( : Si la prioridad del recién leído es menor o igual que la prioridad del operado ubicado en el tope del stack: salida sea { if( tope== ( ) empujar el operador recién leído; else { efectuar pop del operador y sacarlo hacia la hasta que la prioridad del operador recién leído mayor que la prioridad del operador del tope. Empujar el recién leído en el tope del stack. else empujar recién leído al tope del stack; Si se llega a fin de archivo: vaciar el stack, hacia la salida. 6: Stacks 15

16 6-Stacks y Colas 6.1 Stacks: definiciones y operaciones 6.2 Stacks: implementación 6.3 Colas: definiciones y operaciones 6.4 Colas: implementación 6: Stacks 16

17 Definiciones y operaciones Una cola es una lista con restricciones. En ésta las inserciones ocurren en un extremo y los descartes en el otro (e.g. una cola en el banco) Si se conoce el máximo número de componentes que tendrán que esperar en la cola, se suele implementar en base a arreglos. Requiere dos variables o índices: cola que es un índice a donde insertar o encolar cabeza es un índice al elemento a descartar o desencolar 6: Stacks 17

18 Definiciones y operaciones A medida que se consumen o desencolan componentes, van quedando espacios disponibles en las primeras posiciones del arreglo. También a medida que se encolan elementos va disminuyendo el espacio para agregar nuevos elementos. Una mejor utilización del espacio se logra con un buffer circular, en el cual la posición siguiente a la última del arreglo es la primera del arreglo. 6: Stacks 18

19 Buffer circular Este buffer se puede implementar aplicando aritmética modular, si el anillo tiene N posiciones, la operación: cola = (cola + 1) % N, mantiene el valor de la variable cola entre 0 y N-1. Operación similar puede efectuarse para la variable cabeza cuando deba ser incrementada en uno. La variable cola puede variar entre 0 y N-1. Si cola tiene valor N-1, al ser incrementada en uno (módulo N), tomará valor cero. También se agrega una variable N con el numero de elementos encolados para poder distinguir entre la cola vacía y llena. 6: Stacks 19

20 6-Stacks y Colas 6.1 Stacks: definiciones y operaciones 6.2 Stacks: implementación 6.3 Colas: definiciones y operaciones 6.4 Colas: implementación 6: Stacks 20

21 Colas: Implementación usando arreglos circulares typedef int Item; // Item es un entero en este ejemplo static Item *q; // Puntero al arreglo de Items static int N, cabeza, cola, encolados; //Administran el anillo void QUEUEinit(int maxn) //maxn es el valor N-1 de la Fig { q = malloc((maxn+1)*sizeof(item)); // Espacio para N items N = maxn+1; cabeza = 0; cola = 0; encolados=0; /* La detección de cola vacía se logra con */ int QUEUEempty() { return (encolados == 0); 6: Stacks 21

22 Colas: Implementación (cont) /* Si la cola no está vacía se puede consumir un elemento */ Item QUEUEget() { Item consumido= q[cabeza]; cabeza = (cabeza + 1) % N ; encolados--; return (consumido); /* La detección de cola llena se logra con QUEUEfull( )*/ int QUEUEfull() { return( encolados == N); 6: Stacks 22

23 Colas: Implementación (cont) void QUEUEput(Item item) /* Encolar un elemento */ { q[cola] = item; cola = (cola +1) % N; encolados++; void QUEUEdestroy(void) /* Para recuperar el espacio */ { free ( q ); Las funciones cola llena y vacía se podrían implementar con macros para reducir uso del stack. #define QUEUEempty() (encolados == 0) #define QUEUEfull() (encolados == N) 6: Stacks 23

Conjuntos dinámicos. Listas, stacks, colas. Capítulo Nodos Operaciones.

Conjuntos dinámicos. Listas, stacks, colas. Capítulo Nodos Operaciones. Capítulo 5. 1 Conjuntos dinámicos. Listas, stacks, colas. Se estudian estructuras abstractas de datos para representar el concepto matemático de conjuntos, considerando que el número de los elementos del

Más detalles

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

ELO320 Estructuras de Datos y Algoritmos. Listas. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Listas Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, ISBN 0-201-31663-3. 2001 material

Más detalles

Pilas Motivación

Pilas Motivación Capítulo 4 Pilas Las pilas son estructuras muy sencillas y poderosas, también conocidas como LIFO (last in, first out) por la forma en que se trabaja con ellas. Ejemplo de ellas son las pilas de charolas

Más detalles

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

Uno de los conceptos más útiles en ciencias de la computación es la pila. 23. PILA. (Stack). Tipos de Datos Abstractos. 23.1 Conceptos. Uno de los conceptos más útiles en ciencias de la computación es la pila. Una pila es una colección ordenada de elementos de igual tipo, en

Más detalles

Profesor: José Miguel Rubio L.

Profesor: José Miguel Rubio L. Profesor: José Miguel Rubio L. Magíster en Ingeniería Informática Ingeniero Civil en Informática Licenciado en Ciencias de la Ingeniería Técnico en Programación Oficina: 3-20 e-mail 1: jose.rubio.l@ucv.cl

Más detalles

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

Pilas y Colas. Cursos Propedéuticos Dr. René Cumplido M. en C. Luis Rodríguez Flores Pilas y Colas Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Pilas Estructura Operaciones Ejemplos de aplicación Implementación Colas Definición Operaciones

Más detalles

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

UNIDAD 2. ESTRUCTURAS DE DATOS SECUENCIALES. 1. Pilas (Stacks) UNIDAD 2. ESTRUCTURAS DE DATOS SECUENCIALES 1. Pilas (Stacks) Una pila es una coleccion de elementos en la que sólo se pueden insertar y eliminar datos por uno de los extremos de la lista. Al igual que

Más detalles

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

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 1: Pilas Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 dtorres@mixteco.utm.mx 1 Contenido 1. Definición y operaciones

Más detalles

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

Solución práctico 6 Tipos Abstractos de Datos Lista, Pila y Cola Objetivos Trabajar sobre el Tipo Abstracto de Datos Lista, reforzando el desacople entre especificación e implementación. Retomar las implementaciones vistas, como ser Listas Doblemente Encadenadas, Listas

Más detalles

Estructuras de Datos Clase 4 Pilas y colas

Estructuras de Datos Clase 4 Pilas y colas Estructuras de Datos Clase 4 Pilas y colas Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Tipo

Más detalles

PILAS. Prof. Ing. M.Sc. Fulbia Torres

PILAS. Prof. Ing. M.Sc. Fulbia Torres S ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS PILAS Definición. Operaciones. Implementación secuencial. Aplicaciones. Ejemplos. Ejercicios. DEFINICIÓN Una PILA (o stack) es una estructura

Más detalles

Programación TADs Lineales Lista Pila Cola

Programación TADs Lineales Lista Pila Cola Programación 2 7- TADs Lineales Lista Pila Cola 1 TAD LISTA 2 Definición Hemos visto la definición inductiva de listas. Más precisamente, definimos inductivamente los tipos Alista, para cualquier tipo

Más detalles

TAD: Pila. TALLER: TAD Pila

TAD: Pila. TALLER: TAD Pila TALLER: TAD Una pila (stack) es un conjunto de elementos del mismo tipo que solamente puede crecer o decrecer por uno de sus extremos. Una pila también se la conoce con el nombre de estructura de tipo

Más detalles

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

UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS UNIVERSIDAD AUTONOMA DE MADRID ESCUELA POLITÉCNICA SUPERIOR ESTRUCTURAS DE DATOS Y ALGORITMOS Curso 2008-09 Examen parcial APELLIDOS: NOMBRE: 1. (0.5 puntos) Enumera las características de un algoritmo

Más detalles

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

Estructura de Datos. Pilas Colas. Primer Semestre, Indice. TDA: Pilas TDA: Colas Colas de Prioridad Anillos BiColas BiColas Circulares Estructura de Datos Pilas Colas Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 2010 Indice TDA: Pilas TDA: Colas Colas de Prioridad Anillos BiColas BiColas Circulares Pilas - Stack Una de

Más detalles

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

Tema 02: TAD Pila. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 02: TAD Pila M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Descripción

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS)

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) 200 UNAN LEON Departamento de Computación Ingeniería en Sistema y Telemática Docente: Ing. Juan Carlos Antón S. Asignatura: Algoritmo y Estructuras de Datos ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) Pilas

Más detalles

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

Tema 02: TAD Pila. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 02: TAD Pila M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Descripción

Más detalles

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

Biblioteca de templates. template <typename T> void eliminar(t arr[], int& len, int pos); ALGORITMOS Y ESTRUCTURA DE DATOS Machete Oficial 2014 Operaciones sobre arrays Biblioteca de templates Función: agregar Agrega el valor v al final del array arr e incrementa su longitud len. void agregar(t

Más detalles

Segundo Parcial de Programación 2 7 de junio de 2017

Segundo Parcial de Programación 2 7 de junio de 2017 Instituto de Computación. Facultad de Ingeniería. Universidad de la República Segundo Parcial de Programación 2 7 de junio de 2017 Problema 1 (30 puntos) Considere un TAD T que permita almacenar a lo sumo

Más detalles

ELO320 Estructuras de Datos y Algoritmos. Heap & HeapSort. Tomás Arredondo Vidal

ELO320 Estructuras de Datos y Algoritmos. Heap & HeapSort. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Heap & HeapSort Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et

Más detalles

Estructuras de Datos. La pila es un objeto dinámico en constante cambio.

Estructuras de Datos. La pila es un objeto dinámico en constante cambio. 21 Capítulo 2. LA PILA (STACK). 2.1 Definición y ejemplos. Una pila es un conjunto ordenado de elementos en el cual se pueden agregar y eliminar elementos de un extremo, el cual es llamado el tope de la

Más detalles

CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS

CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS CLASE 10 - ESTRUCTURAS DE DATOS DINÁMICAS 1 TEMAS A VER Listas simples genéricas Pilas Colas 2 LISTA SIMPLE GENÉRICA Una lista simple genérica nos permite crear listas de diferentes objetos: enteros, char,

Más detalles

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

Árboles. Árboles. Árboles binarios de búsqueda. Árboles. Inserción en un árbol. Árbol binario de búsqueda Árboles Árboles Mario Medina C. mariomedina@udec.cl Árboles Estructura recursiva Árbol vacío 0 o más árboles hijos Altura ilimitada Árbol binario A lo más dos hijos: izquierdo y derecho Árboles Árboles

Más detalles

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

Estructura de datos y algoritmos. Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES Estructura de datos y algoritmos Tema IV: TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES TIPOS DE DATOS ABSTRACTOS DINÁMICOS LINEALES 4.1 Introducción 4.2 Ejemplos de TDA dinámicos lineales 4.3 Pilas 4.3.1

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C

ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C 2013 ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) EN C Departamento de Computación UNAN-León TEMA 4: ESTRUCTURAS DINÁMICAS DE DATOS (PILAS) 4.1 INTRODUCCIÓN: En términos de listas lineales, una pila puede ser

Más detalles

1 Introducción a los algoritmos y a la programación de computadoras... 1

1 Introducción a los algoritmos y a la programación de computadoras... 1 Contenido - IX Contenido 1 Introducción a los algoritmos y a la programación de computadoras... 1 1.1 Introducción... 2 1.2 Concepto de algoritmo... 2 1.2.1 Definición de algoritmo y problema... 2 1.2.2

Más detalles

Cursos Propedéuticos 2015

Cursos Propedéuticos 2015 Listas Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores http://ccc.inaoep.mx/~rcumplido/ Contenido de la sección Listas Principales operaciones Listas secuenciales vs Listas ligadas

Más detalles

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 -

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 - Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En

Más detalles

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

Tema 7. Colas.   José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía. {badia, bmartine, Tema 7. Colas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía {badia, bmartine, morales}@icc.uji.es Estructuras de datos y de la información Universitat Jaume

Más detalles

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

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010 Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del

Más detalles

Francisco J. Hernández López

Francisco J. Hernández López Francisco J. Hernández López fcoj23@cimat.mx La importancia de las computadoras radica en su capacidad para procesar información Con el propósito de que la información sea procesada, se requiere que ésta,

Más detalles

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++

IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ IMPLEMENTACIÓN DE PILAS CON LISTAS EN C++ Fichero nodo.h #ifndef NODO_H #define NODO_H const int cantidad_nodos = 10; class Nodo private: string dato; Nodo* siguiente; public: Nodo(); void setdato(string

Más detalles

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

Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Ingeniera de Sistemas: Luz Esperanza Espitia Tutora de Estructura de datos. Con relación a la Estructura LISTA Indicar objetos reales que se puedan modelar con dicha estructura. Listas de Ordenes de visitas

Más detalles

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

Las FILAS. ING PEDRO BELTRÁN CANESSA Estructuras de Datos 1 Las FILAS Estructuras de Datos 1 LA FILA (Conceptos...) Es un contenedor que utiliza el protocolo FIFO (First In, First Out) o bien, PEPS (Primeras Entradas, Primeras Salidas) Entrada Salida Estructuras

Más detalles

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

Tema 7- Modelo y Aplicación de Pila, Cola y. Tema 7- Modelo y Aplicación de. Lista Con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Tema - Modelo y Aplicación de Pila, Cola y Lista con Punto de Interés Índice general:. Modelo y Aplicación de Lista con Punto de Interés

Más detalles

Tipos de Datos Abstractos

Tipos de Datos Abstractos Tipos de Datos Abstractos Facultad de Ciencias de la Computación Juan Carlos Conde R. Object-Oriented Programming I Contenido 1 Introducción 2 Estructura tipo LIFO 3 Estructura tipo FIFO 4 LISTAS Ligadas

Más detalles

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

ÍNDICE 1. Índice Listas ordenadas Operaciones permitidas Pilas Operaciones permitidas... ÍNDICE 1 Índice Índice 1 1. Introducción 2 2. Estructuras de datos 3 2.1. Consideraciones generales a todas las estructuras de datos......... 3 2.2. Listas...................................... 3 2.2.1.

Más detalles

Estructura de datos Página 1 de 12 ESTRUCTURA DE DATOS TEMA 1 ESTRUCTURA DE DATOS PILA

Estructura de datos Página 1 de 12 ESTRUCTURA DE DATOS TEMA 1 ESTRUCTURA DE DATOS PILA Estructura de datos Página 1 de 12 ESTRUCTURA DE DATOS TEMA 1 ESTRUCTURA DE DATOS PILA ABSTRACCIÓN Abstracción El proceso de abstracción puede resumirse en 4 etapas: Abstracción. Análisis (determinación)

Más detalles

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

Tema 03: TAD Cola. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 03: TAD Cola M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Descripción del TAD Cola Especificación

Más detalles

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

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Arboles Binarios Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen et

Más detalles

Tipos de Datos Abstractos

Tipos de Datos Abstractos Tipos de Datos Abstractos A continuación se exploran algunos tipos de datos abstractos fundamentales. Se estudiaran listas, que son secuencias de elementos, y dos tipos especiales de listas: las pilas,

Más detalles

(1) Recordemos qué es una pila...

(1) Recordemos qué es una pila... (1) Recordemos qué es una pila... TAD Pila(α) observadores básicos vacía? : pila(α) bool tope : pila(α) p α desapilar : pila(α) p pila(α) generadores vacía : pila(α) apilar : α pila(α) pila(α) otras operaciones

Más detalles

Estructuras de Datos

Estructuras de Datos 8 de marzo de 2011 1 2 3 4 5 Tipo de Dato Abstracto Un tipo de dato abstracto (TDA), corresponde a un conjunto de valores y un conjunto de operaciones sobre tales valores. s de TDA Enteros. Reales. Booleanos.

Más detalles

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)

Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE) Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben

Más detalles

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios AVL. Tomás Arredondo Vidal

ELO320 Estructuras de Datos y Algoritmos. Arboles Binarios AVL. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Arboles Binarios AVL Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, 2001 Thomas Cormen

Más detalles

Tema: Estructura Pila.

Tema: Estructura Pila. PED104. Guía N 5 Página 1 Facultad: Escuela: Asignatura: Ingeniería Computación Programación con Estructuras de Datos Tema: Estructura Pila. Competencia o Desarrolla sistemas de información informáticos

Más detalles

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

Tema: Tipos Abstractos de Datos (TAD s) en C++. Programación II. Guía 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C++. Objetivos Específicos Explicar el concepto "Tipo Abstracto

Más detalles

Listas, pilas, colas

Listas, pilas, colas Listas, pilas, colas Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas TAD Tipo Abstracto de Dato Qué es un TAD? TAD: Tipo Abstracto de Dato. Nuevo

Más detalles

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

Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios

Más detalles

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

Algoritmos y Estructuras de Datos Pilas LIFO y Colas FIFO. Guillermo Román Díez Algoritmos y Estructuras de Datos Pilas LIFO y Colas FIFO Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Pilas LIFO y Colas FIFO 1/12

Más detalles

ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C

ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C 2013 ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) EN C Departamento de Computación UNAN-León TEMA 5: ESTRUCTURAS DINÁMICAS DE DATOS (COLAS) 5.1 INTRODUCCIÓN: Las colas son secuencias de elementos caracterizadas

Más detalles

EDA. Tema 8 Colas de Prioridad: Heaps

EDA. Tema 8 Colas de Prioridad: Heaps EDA. Tema 8 Colas de Prioridad: Heaps Natividad Prieto Sáez. DSIC EDA, T-8. Curso 02/03. N.Prieto p.1/55 Objetivos Estudio de las definiciones asociadas a las Colas de Prioridad: Especificación: operaciones

Más detalles

Estructuras de datos Solemne 2

Estructuras de datos Solemne 2 Estructuras de datos Solemne 2 Profesores: Luis Bastías, Rodrigo Paredes, Iván Zuñiga Ayudantes: Patricia Albornoz, Francisco Claude, Hans Ulloa Sin apuntes, 1:30 horas P1. Move-To-Front Lists Utilizando

Más detalles

7.4. UTILIDADES DE LAS PILAS

7.4. UTILIDADES DE LAS PILAS 7.4. UTILIDADES DE LAS PILAS o Llamadas a subprogramas o Paso de programas recursivos a iterativos o Un caso especial, quick_sort iterativo. o Equilibrado de símbolos o Tratamiento de expresiones aritméticas

Más detalles

Tema 05: Elementos de un programa en C

Tema 05: Elementos de un programa en C Tema 05: Elementos de un programa en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1

Más detalles

Estructuras de Datos Clase 4 Pilas y colas

Estructuras de Datos Clase 4 Pilas y colas Estructuras de Datos Clase 4 Pilas y colas Dr. Sergio A. Gómez http://cs.uns.edu.ar/~sag Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Bahía Blanca, Argentina Tipo

Más detalles

LISTAS ENLAZADAS FUNDAMENTOS TEORICOS

LISTAS ENLAZADAS FUNDAMENTOS TEORICOS LISTAS ENLAZADAS FUNDAMENTOS TEORICOS Una lista enlazada es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un «enlace»

Más detalles

Estructuras de datos en memoria principal

Estructuras de datos en memoria principal Estructuras de datos en memoria principal Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Estructuras de datos v Estructuras básicas

Más detalles

Lista Simple con Puntero al Principio y Puntero al Final

Lista Simple con Puntero al Principio y Puntero al Final Unidad 3 Estructuras de Datos Avanzadas Introducción Hasta el momento se estudiaron las siguientes estructuras estáticas y dinámicas básicas para representar diferentes colecciones de elementos: Arreglo

Más detalles

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales

Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript Algoritmo

Más detalles

Lenguaje de Programación: C++ ARCHIVOS I/O

Lenguaje de Programación: C++ ARCHIVOS I/O UG C++ Lenguaje de Programación: C++ ARCHIVOS I/O Universidad de Guanajuato Octubre 2010 Como abrir un archivo Antes de poder escribir datos en un archivo, debemos abrirlo, esto significa que debemos decirle

Más detalles

Tema 2: Clases y Objetos

Tema 2: Clases y Objetos Tema 2: Clases y Objetos Anexo: tipo de datos Pila Programación Orientada a Objetos Curso 2017/2018 Características del paradigma OO Curso 2017/2018 Programación Orientada a Objetos 2 Características del

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota: Nombre y apellidos: Nota: Escribe tu nombre y apellidos en esta hoja e inmediatamente en todas las suplementarias, incluso las de sucio. El no hacerlo puede suponer tu expulsión Puedes utilizar el lápiz

Más detalles

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 -

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 - Trabajo práctico Nº 7 (Resolución de problemas Estructura: pila y cola). Realiza el programa de cada situación problemática. 1- Cargar en una pila n letras del abecedario.(n debe ser menor a 30) 2- En

Más detalles

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

Guía práctica de estudio 05. Estructuras de datos lineales: Pila y cola. Guía práctica de estudio 05. Estructuras de datos lineales: Pila y cola. Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica

Más detalles

ELO320 Estructuras de Datos y Algoritmos. Codificación Binaria. Tomás Arredondo Vidal

ELO320 Estructuras de Datos y Algoritmos. Codificación Binaria. Tomás Arredondo Vidal ELO320 Estructuras de Datos y Algoritmos Codificación Binaria Tomás Arredondo Vidal Este material está basado en: Robert Sedgewick, "Algorithms in C", (third edition), Addison-Wesley, ISBN 0-201-31663-3,

Más detalles

Estructura de datos Colas

Estructura de datos Colas Estructura de Datos Estructura de datos Colas Temario Unidad II 2.1 Definición y operaciones 2.2 Implementación estática 2.3 Implementación dinámica 2.4 Colas de prioridad 2.5 Casos de estudio 1 Definición

Más detalles

Estructuras de datos en memoria principal

Estructuras de datos en memoria principal Estructuras de datos Estructuras de datos en memoria principal Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Actualización: 11

Más detalles

Colas de prioridad. Capítulo Operaciones Relaciones entre el número de nodos y la altura en árboles binarios.

Colas de prioridad. Capítulo Operaciones Relaciones entre el número de nodos y la altura en árboles binarios. Capítulo 8 1 Colas de prioridad. Se desea disponer de una estructura de datos y encontrar los algoritmos asociados que sean eficientes para seleccionar un elemento de un grupo. Uno de los valores de la

Más detalles

Archivos en lenguaje C

Archivos en lenguaje C Archivos en lenguaje C Los archivos, a diferencia de las estructuras de datos conocidas hasta ahora (variables simples, arreglos) son estructuras de datos almacenadas de manera permanente (discos rígidos,

Más detalles

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

Estructura de Datos. Unidad de Aprendizaje: Unidad de Competencia II: Estructuras de Datos Lineales. M. en C. Edith Cristina Herrera Luna Ingeniería en Computación Unidad de Aprendizaje: Estructura de Datos Unidad de Competencia II: Estructuras de Datos Lineales Marzo 2015 M. en C. Edith Cristina Herrera Luna ESTRUCTURAS DE DATOS Propósito

Más detalles

Programación de IA-32 Modo Real

Programación de IA-32 Modo Real Programación de IA-32 Modo Real Control del flujo de la ejecución Erwin Meza Vega IA-32 Modo real (1/2) Acceso sólo a características limitadas del procesador Se comporta como un 8086 muy rápido Uso de

Más detalles

ELO311 Estructuras de Computadores Digitales. Algoritmos de Multiplicación y División

ELO311 Estructuras de Computadores Digitales. Algoritmos de Multiplicación y División ELO311 Estructuras de Computadores Digitales Algoritmos de Multiplicación y División Tomás Arredondo Vidal Este material está basado en: material de apoyo del texto de David Patterson, John Hennessy, "Computer

Más detalles

Implementaciones de pilas, colas y afines. Memoria dinámica.

Implementaciones de pilas, colas y afines. Memoria dinámica. Implementaciones de pilas, colas y afines. Memoria dinámica. 1 1 Departamento de Computación, FCEyN, Universidad de Buenos Aires, Buenos Aires, Argentina Algoritmos y Estructuras de Datos II, segundo cuatrimestre

Más detalles

Lección 2 Introducción al lenguaje C

Lección 2 Introducción al lenguaje C Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)

Más detalles

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

Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco Ingeniería de Software Estructura de Datos

Más detalles

Estructuras Enlazadas AyED UTN-BA

Estructuras Enlazadas AyED UTN-BA Funciones para estructuras enlazadas Sin Plantilla El Nodo Con plantilla para un dato genérico en info El Nodo struct Nodo1 int info; Nodo* sig; ; Nodo1* p1 = new Nodo1(); struct Nodo2 string info; Nodo*

Más detalles

ESTRUCTURAS DE DATOS Y ALGORITMOS

ESTRUCTURAS DE DATOS Y ALGORITMOS ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno

Más detalles

Arquitectura Interna del 8088

Arquitectura Interna del 8088 Arquitectura Interna del 8088 Intel diseñó el 8088/8086 para realizar al mismo tiempo las principales funciones internas de transferencia de datos y búsqueda de instrucciones. Para conseguir esto, el 8088

Más detalles

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

Tema 8. Listas.  José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz Tema 8. Listas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat

Más detalles

Capitulo V Listas Enlazadas

Capitulo V Listas Enlazadas Capitulo V Listas Enlazadas Muere lentamente, quien abandona un proyecto antes de iniciarlo, no preguntando de un asunto que desconoce o no respondiendo cuando le indagan sobre algo que sabe. Evitemos

Más detalles

Tema: Análisis Sintáctico

Tema: Análisis Sintáctico Compiladores. Guía 6 1 Tema: Análisis Sintáctico Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores Contenido En esta guía se abordarán los conceptos pertenecientes al componente de análisis

Más detalles

Estructura de Datos y de la Información. Pilas y expresiones aritméticas

Estructura de Datos y de la Información. Pilas y expresiones aritméticas Estructura de Datos y de la Información Pilas y expresiones aritméticas LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España

Más detalles

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

Notas de estructura de datos con lenguaje C. Estructuras de datos dinámicas Listas Enlazadas que está prohibida su impresión y distribución. Estructuras de datos dinámicas Contrariamente a las estructuras de datos estáticas (arreglos-listas, vectores y tablas- y estructuras) en

Más detalles

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS.

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS. TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS. HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS 1. Nombre de la asignatura Estructura de

Más detalles

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

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 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 distribución. Listas Enlazadas Estructuras de datos dinámicas

Más detalles

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

1. Una pila funciona según el método LIFO (Last In First Out ). Se define la clase Pila de la siguiente forma: Facultad de Ingeniería Establecimiento Público de Educación Superior, adscrito al Departamento de Antioquia Lógica de Programación II Taller Nº 3: Pilas, colas y recursividad Período 02 de 2014 Profesor:

Más detalles

Tema 2: Análisis léxico

Tema 2: Análisis léxico Tema 2: Análisis léxico Procesamiento de Lenguajes Dept. de Lenguajes y Sistemas Informáticos Universidad de Alicante Procesamiento de Lenguajes Tema 2: Análisis léxico 1 / 21 Fundamentos del análisis

Más detalles

Formatos para prácticas de laboratorio

Formatos para prácticas de laboratorio Fecha de efectividad: CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA IC, LSC 2003-1 5037 Algoritmos y Estructuras de Datos PRÁCTICA No. 2 LABORATORIO DE NOMBRE DE LA PRÁCTICA Ingeniero

Más detalles

Taller de Lenguajes I

Taller de Lenguajes I Taller de Lenguajes I Carrera: Ingeniería en Computación Profesor Responsable: Lanzarini, Laura Año: 2º Duración: Semestral Carga Horaria Semanal: 6hs Carga Horaria Total: 96hs Objetivos Generales Profundizar

Más detalles

Estructuras de datos: Pilas, Colas, Listas

Estructuras de datos: Pilas, Colas, Listas Estructuras de datos:,, Dep. de Computación - Fac. de Informática Universidad de A Coruña J. Santiago Jorge sjorge@udc.es,, Índice 1 2 3,, Referencias bibliográficas M. A. Weiss., pilas y colas. En Estructuras

Más detalles

Universidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación PROGRAMACIÓN II

Universidad Tecnológica Nacional Facultad Regional San Francisco. Tecnicatura Superior en Programación PROGRAMACIÓN II Universidad Tecnológica Nacional Facultad Regional San Francisco Tecnicatura Superior en Programación PLANIFICACIÓN CICLO LECTIVO 2014 ÍNDICE ÍNDICE... 2 PROFESIONAL DOCENTE A CARGO... 3 UBICACIÓN... 4

Más detalles

Tema 4- Representación Enlazada

Tema 4- Representación Enlazada Tema 4- Representación Enlazada Tema 4: Representación Enlazada Índice general: 1. Representación Enlazada: Variables referencia Java como enlaces. 2. Listas Enlazadas Genéricas. Operaciones y costes.

Más detalles

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN

Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos

Más detalles

Operadores aritméticos

Operadores aritméticos Bloque 3.2 Operadores aritméticos Suma : x + y Resta : x y Multiplicación : x * y División : x / y Módulo : x % y (resto de la división Si los operandos son enteros tipo del resultado

Más detalles

Tema: Introducción a las Estructuras de Datos

Tema: Introducción a las Estructuras de Datos Área Académica: Computación Asignatura: Estructura de Datos I Tema: Introducción a las Estructuras de Datos Profesor(a): Lic. Mónica Cornejo Velázquez Periodo: Julio Diciembre 2011 Tema: Estructuras de

Más detalles