UNIDAD 2. ESTRUCTURAS DE DATOS SECUENCIALES. 1. Pilas (Stacks)
|
|
- Miguel Ángel Medina González
- hace 7 años
- Vistas:
Transcripción
1 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 toda estructura de datos, se consideran algunas operaciones básicas como la inserción y el borrado, que se denominan comúnmente como operación "push" y "pop" respectivamente. Los elementos de una pila se eliminan en orden inverso al que fueron insertados. Es decir, el último elemento que entra a la pila es el primer elemento que se saca. Esta estructura se le conoce como estructura LIFO (Last-In, First-Out / último en entrar - primero en salir). Existen numerosos casos prácticos en los que se utiliza el concepto pila: pila de platos (cuando se necesita un plato limpio siempre se toma el primero de la pila), pila de monedas, pila de latas, etc. Las pilas se pueden representar con arreglos y con listas. En el caso de los arreglos es necesario definir el tamaño máximo, y una variable auxiliar que indique el tope de la pila, en el caso de las listas se manejan espacios dinámicos denominados nodos. Representación de una pila Las pilas se pueden representar en un lenguaje de programación por medio de listas enlazadas o con arreglos, para los cuales se debe definir el tamaño máximo de la pila y una variable auxiliar que debe servir como apuntador al último elemento de la pila llamado Tope. Representación en Memoria Las pilas no son estructuras de datos fundamentales, es decir, no están definidas como tales en los lenguajes de programación, ya que tienen que ser implementadas. Las pilas pueden representarse e implementarse mediante el uso de: Arreglos. Listas enlazadas. 1
2 A las Pilas que se implementan con arreglos se les denominan Pilas Estáticas, debido a que su tamaño difícilmente será modificado, a no ser que así se implemente. Por lo tanto es importante definir el tamaño máximo de la pila antes de su uso, además es necesario considerar un apuntador al último elemento insertado en la pila (tope) el cual denominaremos Sp (Stak pointer). La representación gráfica de una pila es la siguiente: Como utilizamos arreglos para implementar pilas, tenemos la limitante de espacio de memoria reservada. Una vez establecido un máximo de capacidad para la pila, ya no es posible insertar más elementos. Una posible solución a este problema es el uso de espacios compartidos de memoria. Supóngase que se necesitan dos pilas, cada una con un tamaño máximo de n elementos. En este caso se definirá un solo arreglo de 2*n elementos, en lugar que dos arreglos de n elementos. En este caso utilizaremos dos apuntadores: SP1 para apuntar al último elemento insertado en la pila 1 y SP2 para apuntar al último elemento insertado en la pila 2. Cada una de las pilas insertará sus elementos por los extremos opuestos, es decir, la pila 1 iniciará a partir de la localidad 1 del arreglo y la pila 2 iniciará en la localidad 2n. De este modo si la pila 1 necesita más de n espacios (hay que recordar que a cada pila se le asignaron n localidades) y la pila 2 no tiene ocupados sus n lugares, entonces se podrán seguir insertando elementos en la pila 1 sin caer en un error de desbordamiento Operaciones con pilas Las operaciones principales son poner y quitar elementos: ALGORITMO INSERTAR ELEMENTOS (PUSH) Este algoritmo pone el DATO en PILA. Actualiza el valor de TOPE. MAX es una variable que indica el máximo de elementos que puede almacenar la pila. SI TOPE < MAX TOPE = TOPE + 1 PILA[TOPE] = DATO SI NO LA PILA ESTA LLENA FIN SI 2
3 ALGORITMO ELIMINAR ELEMENTOS (POP) Este algoritmo saca el último elemento de la PILA. El elemento lo guarda en la variable DATO. Actualiza el valor de TOPE. SI TIPE > 0 DATO = PILA[TOPE] TOPE = TOPE 1 SI NO PILA VACIA Aplicaciones con pilas (postfix, prefix, infix) Las pilas son útiles en el tratamiento de recursividad, en llamadas a subprogramas, ordenación y en el manejo de expresiones aritméticas. En este último caso se utilizan para convertir expresiones en notación infija a su equivalente en postfijo o prefijo: Dada la expresión A+B, se dice que esta en notación infija y su nombre se debe a que el operador + se encuentra entre los operandos A y B. Dada la expresión AB+, se dice que esta en notación postfija y su nombre se debe a que el operador + se encuentra después de los operandos A y B. Dada la expresión +AB, se dice que esta en notación prefija y su nombre se debe a que el operador + se encuentra antes de los operandos A y B. La transformación de expresiones de infijo a postfijo y prefijo sigue las mismas reglas de precedencia para los signos de operación, es decir la potencia ($) tiene la mayor precedencia, después el producto y la división, y al final la suma y la resta. Además es importante recordar que las expresiones encerradas entre paréntesis, deberán ser resueltas anticipadamente. Recuerde que las operaciones como la suma, resta, división y producto son asociativas por la izquierda, a diferencia de la potencia que es asociativa por la derecha. A continuación observamos una tabla con ejemplos de conversión de operaciones infijo a postfijo/prefijo: Infijo Postfijo Prefijo A+B AB+ +AB A+B-C AB+C- -+ABC (A+B)*(C-D) AB+CD-* *+AB-CD A$B*C-D+E/F/(G+H) AB$C*D-EF/GH+/+ +-*$ABCD//EF+GH ((A+B)*C-(D-E))$(F+G) AB+C*DE--FG+$ $-*+ABC-DE+FG A-B/(C*D$E) ABCDE$*/- -A/B*C$DE Tome en cuenta que la forma prefija de una expresión compleja no es la imagen espejo de la forma postfija, como puede ser visto en el segundo ejemplo de la tabla. La ventaja de utilizar expresiones en notación polaca postfija y prefija radica en que no son necesarios los paréntesis para indicar el orden de operación, ya que este queda establecido por la ubicación de los operadores con respecto a los operando. 3
4 Las pilas son estructuras de datos muy usadas para la solución de diversos tipos de problemas. Pero tal vez el principal uso de estas estructuras es el tratamiento de expresiones matemáticas representadas en prefijo y postfijo, que es la manera en como las computadoras pueden interpretar las mismas. Los procesos para la conversión de expresiones de infijos a postfijo y prefijo pueden ser fácilmente mecanizados a través de algoritmos computacionales. Conversión de Expresiones en Infijo a Postfijo Considere dos expresiones A+B*C y (A+B)*C, y sus respectivas expresiones postfijas ABC*+ y AB+C*. En cada caso existe un orden especifico en el cual se respetan las precedencias de las operaciones que se tienen que realizar, resulta obvio observar que la precedencia de los operadores es un aspecto muy importante a considerar en el proceso de conversión, por ello asumiremos la existencia hipotética de una función precede( op1, op2 ), donde op1 y op2 son los caracteres que representan los operadores. Esta función regresa un valor verdadero si op1 tiene precedencia sobre op2, y falso para el caso contrario. Por lo que precede( *, + ) regresa verdadero, precede( +, + ) regresa verdadero y precede( +, * ) regresa falso. Además asumiremos las siguientes reglas de precedencia para los paréntesis, ya que las operaciones encerradas entre estos deberán ser realizadas previamente al resto de las operaciones, ya que su precedencia es mayor: precede( (, op ) = falso // para cualquier operador op precede( op, ( ) = falso // para cualquier operador op menos ) precede( op, ) ) = verdadero // para cualquier operador op menos ( precede( ), op ) = error // para cualquier operador op, se considera error A continuación mostraremos el algoritmo correspondiente para convertir expresiones en infijo a postfijo: stackop = una pila vacía while ( no sea fin de cadena de entrada infija ) simbolo = siguiente carácter de entrada if ( simbolo es un operando ) agregar simbolo a la cadena postfija else while (!vacia(stackop) && precede(tope(stackop),simbolo) ) topesimbolo = extrae(stackop) agregar topesimbolo a la cadena postfija if ( vacia(stackop) simbolo!= ')' ) inserta(stackop, simbolo) else topesimbolo = extrae(stackop) while (!vacia(stackop) ) topesimbolo = extrae(stackop) agregar topesimbolo a la cadena postfija Consideremos ahora la evaluación de las dos expresiones mencionadas al principio. 4
5 Ejemplo 1: cadena infija A + B * C símbolo Cadena postfija stackop 1 A A 2 + A + 3 B A B + 4 * A B + * 5 C A B C + * 6 A B C * + 7 A B C * + Las líneas 1,3 y 5 corresponden al deletreo de los operándoos por lo que símbolo es inmediatamente colocado en la cadena postfija. En la línea 2 un operador es deletreado y colocado en la pila que esta vacío. En la línea 4 la precedencia del símbolo * es mayor que la del símbolo colocado al tope de la pila (+); por lo que el nuevo símbolo es colocado en la pila. En la línea 6 y 7 la cadena de entrada es vacía, y la pila es vaciada extrayendo su contenido y colocándolo en la cadena postfija. La colocación de los elementos en la pila stackop es en dirección derecha izquierda, por lo que los elementos van siendo incrustados del lado derecho. Ejemplo 2: cadena infija (A + B) * C símbolo Cadena postfija stackop 1 ( ( 2 A A ( 3 + A ( + 4 B A B ( + 5 ) A B + 6 * A B + * 7 C A B + C * 8 A B + C * En este ejemplo, cuando el paréntesis del lado derecho es encontrado los elementos de la pila son extraídos hasta que el paréntesis izquierdo es encontrado, en este punto ambos paréntesis son descartados. De esta manera los paréntesis forzan a un orden de precedencia diferente. Evaluación de Expresiones en Postfijo Cada operador en una cadena postfija se refiere a los dos operados previos en la cadena. Suponga que cada vez que leemos un operando colocamos a éste en la pila. Cuando alcanzamos un operador, sus operándoos estarán al tope de la pila. Nosotros podemos extraer estos dos elementos, realizar la operación indicada en ellos y colocar el resultado en la pila de manera que quede disponible para ser usado como operando en la siguiente operación. A continuación presentamos un algoritmo que es capaz de evaluar expresiones postfijas: stackop = una pila vacía while ( no sea fin de cadena de entrada postfija ) simbolo = siguiente carácter de entrada if ( simbolo es un operando ) 5
6 inserta(stackop, simbolo) else // el simbolo es un operador op1 = extrae(stackop) op2 = extrae(stackop) valor = el resultado de aplicar símbolo a op1 y op2 inserta(stackop, valor) return extrae(stackop) Suponga que queremos evaluar la siguiente expresión en postfijo: / + *. La siguiente tabla muestra los valores que se van generando en la evaluación de cada elemento de la cadena. Cada operando es colocado en una pila de operándoos. De tal manera que el numero máximo de elementos de la pila que es el numero de operándoos que aparecen en la entrada de la expresión. Sin embargo el máximo de de elementos en la pila es menor al numero teóricamente necesario, ya que el operador los remueve de la pila. En el ejemplo veremos que la pila nunca contiene mas de cuatro elementos, a pesar de que aparecen seis operándoos en el ejemplo. Tome en cuenta que el ejemplo supone la entrada de la cadena del tipo postfijo. Símbolo op1 op2 valor stackop , 2 3 6, 2, , , , 3, , 3, 8, 2 / , 3, , 7 * Colas Una cola es una lista de elementos en la que éstos se introducen por un extremo y se eliminan por otro. Los elementos se eliminan en el mismo orden en el que insertaron. El primer elemento que entra en la cola, es el primer elemento en salir. Las colas también reciben el nombre de estructuras FIFO (First-In, First-Out) Ejemplos, una cola de personas esperando usar el teléfono público, comprar tortillas, una fila de autos en un auto lavado, etc. Las colas son una estructura con muy pocas operaciones disponibles ya que solo permiten añadir y leer elementos y al igual que las pilas, se pueden representar con arreglos y listas. En el caso de los arreglos es necesario definir el tamaño máximo para la cola y dos variables auxiliares; una de ellas para que guarde la posición del primer elemento de la cola (Frente) y otra para que guarde la posición del ultimo elemento (Final) Máximo Frente Final 6
7 ALGORITMO INSERTAR ELEMENTOS Este algoritmo inserta el elemento Dato al Final de la cola. Frente y Final son variables que indican el inicio y fin de la cola, respectivamente. MAX es el máximo de elementos que puede almacenar la cola. Frente y Final inician en 0. if ( Final < MAX ) Final = Final + 1 Cola [ Final ] = Dato if ( Final igual a 1 ) Frente = 1 else Cola llena ALGORITMO ELIMINAR ELEMENTOS Este algoritmo elimina el primer elemento de la cola y lo guarda en la variable Dato. if ( Frente no es igual a 0 ) Dato = Cola [ Frente ] if ( Frente igual a Final ) Frente = 0 Final = 0 else Frente = Frente + 1 else COLA VACIA Colas circulares Para hacer uso mas eficiente de la posiciones disponible se trata a las colas como una estructura circular. Para ello es necesario realizar varios cambios al esquema inicial, en primer lugar los valores para Frente y Final deberán iniciar ambos en la posición máxima de la cola, debido a que el ultimo elemento de la cola precede inmediatamente al primero al primero dentro de la cola bajo esta representación. En segundo lugar es necesario sacrificar un elemento de la cola para no tener casos absurdos en el que Final y Frente sean la misma posición aún cuando la cola este casi vacía. El algoritmo de inserción deberá contemplar un caso especial donde el Frente es incrementado en una unidad y paso seguido se verifica que Final es igual Frente, en ese caso el valor de Final ya fue incrementado y como se verifico que la cola esta llena, es necesario manipular el valor de Final para que sea reubicado en su posición anterior próxima. 7
8 ALGORITMO INSERTAR ELEMENTOS Este algoritmo inserta el elemento Dato al final de la cola. Frente y Final son variables que indican el inicio y fin de la cola. MAX es el máximo de elementos que puede almacenar la cola. if ( Final igual a MAX ) Final = 1 else Final = Final + 1 if ( Final igual a Frente ) Cola llena else Cola [ Final ] = Dato ALGORITMO ELIMINAR ELEMENTOS Este algoritmo elimina el primer elemento de la cola y lo guarda en la variable DATO. if ( Frente = Final ) COLA VACIA else if ( Frente igual a MAX ) Frente = 1 else Frente = Frente + 1 Dato = Cola [ Frente ] 8
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 detallesEstructuras 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 detallesUno 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 detallesPILAS. 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 detallesTema 3. Estructura de datos lineales. J.T.P. Maria Eugenia Valesani - Programacion 1 - Fa.Ce.Na.
Tema Estructura de datos lineales . Introducción Las estructuras de datos dinámicas son una colección de elementos (también llamados nodos) que normalmente son registros con la particularidad que crecen
Más detallesLas 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 detallesESTRUCTURAS 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 detallesEstructuras Dinámicas de datos.
Estructuras Dinámicas de datos. Las estructuras dinámicas de datos son estructuras que crecen a medida que ejecuta un programa. Una estructura dinámica de datos es una colección de elementos llamadas nodos
Más detallesEstructura 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 detallesUnidad II: Análisis semántico
Unidad II: Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Más detallesTema 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 detallesUNIDAD 9. DATOS COMPLEJOS PILAS
UNI 9. TOS OMPLEJOS PILS Una pila es una lista de elementos en la que se pueden insertar y eliminar elementos sólo por uno de los extremos. omo consecuencia, los elementos de una pila serán eliminados
Más detallesESTRUCTURAS 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 detallesFormatos 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 detallesIngeniera 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 detallesEstructura 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 detallesA 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 detallesPilas y Colas. Capítulo 3
Pilas y Colas Capítulo 3 Pilas 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
Más detallesA 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 detallesUn. VI. Generador de código intermedio.
Un. VI. Generador de código intermedio. La administración de la memoria se da en esta etapa. Se debe considerar tanto la memoria estática como dinámica, y en esta se utilizan generalmente pilas. Los lenguajes
Más detallesTema 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Árboles de Decisión Árboles de Sintaxis
Árboles de Decisión Árboles de Sintaxis Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Árboles de Decisión Árbol de Decisión Forma gráfica de
Más detallesTema 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 detallesSolució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 detallesEstructura 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 detallesUNIVERSIDAD 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 detalles1.2.4 Listas enlazadas
1.2.4 Listas enlazadas Las listas enlazadas son tipos de datos dinámicos que se construyen con nodos. Un nodo es un registro con al menos, dos campos, uno de ellos contiene las componentes y se le denomina
Más detallesTAD: 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 detallesEstructura de Datos. Listas Enlazadas
Estructura de Datos Listas Enlazadas Conceptos de Lista enlazada Una lista enlazada es una secuencia de nodos que se interconectan mediante sus campos de enlace. Nodo: un objeto creado desde una clase
Más detalles7.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 detallesProgramación en java. Estructuras algorítmicas
Programación en java Estructuras algorítmicas Estructuras algoritmicas 1. Conceptos basicos 1. Dato 2. Tipos de datos 3. Operadores 2. dsd Conceptos Basicos DATO: se considera una representación simbólica
Más detallesEstructura 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 detallesESTRUCTURAS 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 detalles2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIFICADORES COMO LOCALIDADES DE MEMORIA
CONTENIDOS: 1. TIPOS DE DATOS 2. EXPRESIONES 3. OPERADORES Y OPERANDOS 4. INDENTIICADORES COMO LOCALIDADES DE MEMORIA OBJETIO EDUCACIONAL: El alumno conocerá las reglas para cambiar fórmulas matemáticas
Más detallesNotación Polaca (Jan Lukasiewitz) (Notación prefija)
APLICACIONES. Notación Polaca y Polaca Inversa. Notación infija A+B C-D E*F G/H Distinción entre (A+B)*C y A+(B*C) de prelación. Con paréntesis y orden Notación Polaca (Jan Lukasiewitz) (Notación prefija)
Más detallesEl lenguaje C. 1. Identificadores, constantes y variables
Principios de Programación El lenguaje C 1. Identificadores, constantes y variables 1.1. Conceptos de memoria Los nombres de variable como x, y, suma corresponden a localizaciones o posiciones en la memoria
Más detallesAlgoritmos 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 detallesExpresiones Aritméticas. Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz
Expresiones Aritméticas Programación digital I Escuela de Sistemas Facultad de Ingeniería Gilberto Diaz Expresiones Aritméticas El computador puede realizar cálculos además de mostrar datos por pantalla.
Más detallesUNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS OBJETIVO GENERAL MÉTODOS DIDÁCTICOS EVALUACIÓN
UNIVERSIDAD AUTÓNOMA DE AGUASCALIENTES CENTRO DE CIENCIAS BÁSICAS DEPARTAMENTO DE SISTEMAS ELECTRÓNICOS MATERIA: ESTRUCTURAS DE DATOS HRS. T/P: 2/3 CARRERA: LIC. EN TECNOLOGÌAS DE INFORMACIÓN CRÉDITOS:
Más detallesUnidad I: Análisis semántico
Unidad I: Análisis semántico 1.1 Arboles de expresiones Los árboles de expresiones representan el código de nivel del lenguaje en forma de datos. Los datos se almacenan en una estructura con forma de árbol.
Más detallesHoja de ejercicios del Tema 9
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 9 1. Sin ejecutarlo, qué mostraría el siguiente código? int x = 5, y = 12, z;
Más detallesAPUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.
APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido
Más detalles1. El Tipo Abstracto de Datos.
Tipo Abstracto de s TAD Pila y TAD Cola 1. El Tipo Abstracto de s. 2. Definición de un TAD Pila. 3. Operaciones sobre el TAD Pila. 4. Implementación dinámica del TAD Pila en C. 5. Definición de un TAD
Más detallesRECORRIDO EN ARBOLES
RECORRIDO EN ARBOLES Orlando Arboleda Molina Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle 16 de septiembre de 2008 Contenido Recorrido en árboles Definición Recorrido en
Más detallesEstructura de datos y de la información Boletín de problemas - Tema 10
Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico
Más detallesUniversidad 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 detallesPara la Implementación Dinámica de listas: Se usa la asignación dinámica de memoria mediante punteros o referencias.
Tema: Listas simple encadenadas. Manejo de pilas y colas dinámicas Objetivos: Que los alumnos logren Capacidad para usar, en forma eficiente los diagramas UML básicos. Habilidad para identificar las distintas
Más detallesTipos De Datos. Numéricos. Alfanuméricos (string) Arreglos (Vectores, Matrices) Estructurados Registros (Def. Por el Archivos Usuario) Apuntadores
Tipos De Datos Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple carácter, tal como b, un valor entero tal como 35. El tipo de dato determina la naturaleza del conjunto de
Más detallesNombre de la asignatura : Estructura de Datos I. Carrera : Ingeniería en Sistemas Computacionales. Clave de la asignatura : SCB-9321
. D A T O S D E L A A S I G N A T U R A Nombre de la asignatura : Estructura de Datos I Carrera : Ingeniería en Sistemas Computacionales Clave de la asignatura : SCB-932 Horas teoría-horas práctica-créditos
Más detallesGeneración de Código Intermedio
Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede
Más detallesTema#2. Tipos de Datos 10
2.1 DEFINICIÓN DE DATOS. Los datos son los objetos sobre los que opera una computadora. El tipo de un dato es el conjunto de valores que puede tomar durante el programa. Si se le intenta dar un valor fuera
Más detallesAlonso Ramírez Manzanares Computación y Algoritmos 10.03
Recursividad mat-151 1 Ejercicio de recursión: dibujando una regla Queremos dibujar las marcas de diferentes tamaños de una regla. Marcas grandes cada 1/2 cm, marcas más pequeñas cada 1/4 cm... hasta una
Más detalles3.3. Pilas 3.3. PILAS 3
3.3. PILAS 3 3.3. Pilas Una Pila es una estructura de datos lineal que sólo permite insertar, eliminar y consultar elementos en uno de sus extremos, que denominamos cima. Es, por tanto, una estructura
Más detallesEstructuras lineales de datos
Estructuras lineales de datos Esta sección está orientada a comprender y manejar las estructuras lineales de datos, teniendo en cuenta la representación lógica y física de las mismas y el lenguaje de programación
Más detalles2. ESTRUCTURAS BÁSICAS
2. ESTRUCTURAS BÁSICAS En el computador un conjunto (no vacío) de datos se almacenan en memoria; el área de memoria se denomina por el elemento X k ; esto es una celda, una unidad de memoria direccionable;
Más detallesPilas 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(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 detallesTema: Tipos Abstractos de Datos (TAD s) en C#.
Programación II. Guía No. 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C#. Objetivos Comprender el concepto Tipo Abstracto de Datos
Más detallesEstructura de datos. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.
1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Estructura de datos Licenciatura en Informática IFM - 0411 3-2-8 2.- HISTORIA DEL
Más detallesSegundo 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 detallesAlgoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
Más detallesUnidad 4. Autómatas de Pila
Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0n1n} debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje
Más detallesEstructura 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 detallesLISTAS. Prof. Ing. M.Sc. Fulbia Torres
LISTAS ESTRUCTURAS DE DATOS 2006 Prof. UNIDAD II ESTRUCTURAS DE DATOS LISTAS Definición. Representación de Listas. Lista Lineal Simplemente Enlazada. Operaciones TAD LLSE. Implementación Dinámica. Otras
Más detallesTema 5. Tipos Abstractos de Datos
. E.U.Politécnica. I.T.Industrial (Electricidad) Tema 5. Tipos Abstractos de Datos. E.U. Politécnica Curso 2004-2005 Departamento Lenguajes y Ciencias de la Computación. Universidad de Málaga José Luis
Más detallesCapítulo. Listas, pilas y colas en C. Contenido. Introducción
Capítulo 32 Listas, pilas y colas en C Contenido Listas enlazadas Clasificación de listas enlazadas Operaciones en listas enlazadas Inserción de un elemento en una lista Búsqueda de un elemento de una
Más detallesINDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación
INDICE Prologo XI Capitulo 1. Algoritmos y programas 1.1. Configuraciones de una computadora 1 1.2. Lenguajes de programación 2 1.3. Resolución de problemas 1.3.1. Fase de resolución del problema 3 1.3.1.1.
Más detallesESTRUCTURAS BÁSICAS Concepto de datos estructurados.
8 ESTRUCTURAS BÁSICAS 8.1. Concepto de datos estructurados. En temas anteriores vimos la representación de los datos en un computador y los distintos tipos que hay: carácter (ASCII), real (o de coma flotante),
Más detallesAritmética de Enteros
Aritmética de Enteros La aritmética de los computadores difiere de la aritmética usada por nosotros. La diferencia más importante es que los computadores realizan operaciones con números cuya precisión
Más detallesTema 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 detallesMáquinas de estado finito y expresiones regulares
Capítulo 3 Máquinas de estado finito y expresiones regulares En este tema definiremos y estudiaremos máquinas de estado finito, llamadas también máquinas de estado finito secuenciales o autómatas finitos.
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario
Más detallesEstructura de datos y algoritmos. Tema V TDA DINÁMICOS NO LINEALES: Árboles: árboles binarios
Estructura de datos y algoritmos Tema V TDA DINÁMICOS NO LINEALES: Árboles: árboles binarios TEMA V : TIPOS DE DATOS ABSTRACTOS NO LINEALES: ÁRBOLES 5.1 Conceptos y definiciones 5.2 Árboles perfectamente
Más detallesINTRODUCIR FORMULAS EN EXCEL
INTRODUCIR FORMULAS EN EXCEL Las fórmulas, comienzan con un signo (=) y son ecuaciones que efectúan cálculos con los valores ingresados en la hoja de cálculo. Por ejemplo, la siguiente fórmula multiplica
Más detallesAREA A LA QUE PERTENECE: 103 Matemática Básica 2 34 créditos POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Introducción a la Programación Y Computación 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias y Sistemas AREA
Más detalles11. PILAS Introducción Fundamentos
11. PILAS 11.0 INTRODUCCIÓN... 31 11.1 FUNDAMENTOS... 31 11.2. REPRESENTACIÓN DE LAS PILAS EN C++... 32 Implementación mediante estructuras estáticas... 36 Implementación mediante estructuras dinámicas...
Más detallesAREA A LA QUE PERTENECE: POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: 1er. Semestre 2015 AUXILIAR:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Introducción a la Programación y Computación 1 CODIGO: 0770 CREDITOS: 4 ESCUELA: Ciencias y Sistemas
Más detallesPOST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Introducción a la Programación Y Computación 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias y Sistemas AREA
Más detallesProgramació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 detallesTema 2. Concepto de Algoritmo
Tema 2. Concepto de Algoritmo Objetivos Definir el concepto de algoritmo Resolver problemas sencillos mediante el diseño de un algoritmo Conocer los tipos de datos elementales y las operaciones sobre ellos
Más detallesEstructuras 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 detallesUnidad 4. Autómatas de Pila
Unidad 4. Autómatas de Pila Una de las limitaciones de los AF es que no pueden reconocer el lenguaje {0 n 1 n } debido a que no se puede registrar para todo n con un número finito de estados. Otro lenguaje
Más detallesINSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE BIOTECNOLOGIA DEPARTAMENTO DE CIENCIAS BASICAS
MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.4 NOMBRE DE LA PRÁCTICA Operaciones con Escalares y Conceptos Básicos de Programación 4.1 OBJETIVO GENERAL El alumno conocerá el funcionamiento
Más detallesCurso de Java Introducción a la Programación II
Curso de Java Introducción a la Programación II Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Tipos Java 2 Decalaración de variables 3 Operadores aritméticos Índice
Más detallesControla el flujo de tokens reconocidos por parte del analizador léxico. 4.2 Introduccion a las gramaticas libres de contexto y arboles de derivacion
UNIDAD IV Analisis Sintactico 4.1 Introduccion Sintaxis significa estructura del orden de las palabras en una frase. La tarea del analisis sintactico es revisar si los símbolos aparecen en el orden correcto
Más detallesGENERACIÓN DE CÓDIGO INTERMEDIO ÁRBOLES DE SINTAXIS ABSTRACTA (ASA)
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más detallesUNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS PROGRAMA DEL CURSO INTRODUCCION A LA PROGRAMACION Y COMPUTADORAS 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias
Más detallesLas expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.
Expresiones Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Por ejemplo: a + (b + 3) / c Cada expresión toma un valor que
Más detallesFicha de Aprendizaje N 13
Ficha de Aprendizaje N 13 Curso: Lógica y lenguaje de programación Tema: Fundamentos de programación Duración: 2 horas pedagógicas Logros de aprendizaje Identifica los diferentes tipos de operadores que
Más detallesEstructura 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 detallesEstructuras de Datos Avanzadas Contenido del Tema
T E M A 5 Estructuras de Datos Avanzadas Contenido del Tema 5.1. Introducción 5.2. Pilas 5.3. Colas 5.4. Listas 5.5. Arboles Binarios Arboles Binarios de Búsqueda Programación Modular Introducción Objetivos
Más detallesImplementaciones 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ÍNDICE UNIDAD 2: GENERACION DE CODIGO INTERMEDIO
ÍNDICE UNIDAD 2: GENERACION DE CODIGO INTERMEDIO 2. NOTACIONES 3 2.. PREFIJA.4 2..2 INFIJA....4 2.2.3 POSTFIJA.. 5 2.2 REPRESENTACIONES DE CÓDIGO INTERMEDIO....5 2.2. NOTACIÓN POLACA. 7 2.2.2 CÓDIGO P....8
Más detallesUNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA DIRECCION GENERAL DE ASUNTOS ACADEMICOS PROGRAMA DE ASIGNATURA
UNIVERSIDAD AUTONOMA DE BAJA CALIFORNIA DIRECCION GENERAL DE ASUNTOS ACADEMICOS PROGRAMA DE ASIGNATURA I. DATOS DE IDENTIFICACION 1. Unidad Académica: Facultad de Ciencias 2. Programa (s) de estudio: Licenciatura
Más detallesEstructuras 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 detallesConjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.
NÚMEROS REALES Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación. Un conjunto es una colección bien definida
Más detallesUNIVERSIDAD DE LAS AMÉRICAS, A.C. Ciudad de México
UNIVERSIDAD DE LAS AMÉRICAS, A.C. Ciudad de México Manual de Prácticas IT-111 PROGRAMACIÓN Y ESTRUCTURA DE DATOS Otoño 2007 Licenciatura en Sistemas Computacionales y Administrativos IT-111 PROGRAMACIÓN
Más detallesUNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.
Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.
Más detallesTRABAJO DE EXCEL 1. QUÉ ES UNA FÓRMULA EN EXCEL?
TRABAJO DE EXCEL 1. QUÉ ES UNA FÓRMULA EN EXCEL? Las fórmulas en Excel son expresiones que se utilizan para realizar cálculos o procesamiento de valores, produciendo un nuevo valor que será asignado a
Más detallesUnidad 5 Análisis semántico
61 Unidad 5 Análisis semántico Se compone de un conjunto de rutinas independientes, llamadas por los analizadores morfológico y sintáctico. El análisis semántico utiliza como entrada el árbol sintáctico
Más detalles