Pilas Motivación
|
|
|
- Paula Río Márquez
- hace 7 años
- Vistas:
Transcripción
1 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 en una panadería, donde sólo se puede tomar la charola que está arriba de pila y si se quiere depositar una charola se debe hacer arriba de las demás Motivación Se tienen tres palos o postes, en el primero de ellos se tienen n discos de diferente tamaño cada uno. El disco de mayor diámetro se encuentra en el fondo del palo y el de diámetro menor hasta arriba, con la restricción que ningún disco de tamaño mayor puede colocarse sobre uno menor. Los otros dos palos están vacíos. El problema consiste en pasar los discos del primer palo al segundo, usando el tercer palo como auxiliar. Este es un ejemplo de uso de una pila. Si el número de discos es tres, la solución al problema consta de los siguientes pasos: Mover el disco 1 del palo A al 2 Mover el disco 2 del palo A al 3 Mover el disco 1 del palo B al 3 Mover el disco 3 del palo A al 2 Mover el disco 1 del palo C al 1 Mover el disco 2 del palo C al 2 Mover el disco 1 del palo A al 2 Como son los movimientos de los discos? Siempre se toma el disco de más arriba y se coloca hasta arriba del palo al que se desea pasar. Esto da pie a una estructura de datos denominada pila. Una pila es una estructura con la restricción que las inserciones y supresiones son siempre por el mismo lado, denominado tope. 1
2 CAPÍTULO 4. PILAS 2 Se puede observar que para 3 discos se requieren 7 movimientos. En general para n discos se requieren 2 n 1 movimientos. Existe una leyenda que dice que en la ciudad de Hanoi hay unos monjes dedicados a resolver el problema con 64 discos. (De ahí que este problema se conoce como el problema de las torres de Hanoi.) Si mover cada disco les toma un día, entonces resolver el problema tomará días. La parte fea de la historia es que el día que resuelvan el problema se terminará el mundo :) Aunque el problema, no usa pilas en su solución programada se incluye aquí porque es un ejemplo ilustrativo del concepto de pila y se presenta como un ejemplo de recursión más elaborada. La solución al problema consiste en pasar primero el disco1 del palo1 al palo2. Entonces el problema se reduce a pasar los n 1 discos restantes del palo1 al palo3 y finalmente regresar esos n 1 discos del palo3 al palo2. A continuación la implementación recursiva de la solución. Programa que juega a las torres de Hanoi. Septiembre public class Hanoi { private final int tamanio; public Hanoi () { System.out.println("Torres de Hanoi"); tamanio = 3; solucion(tamanio, a, b, c ); public Hanoi (int tam) { System.out.println("Torres de Hanoi"); tamanio = tam; solucion(tamanio, a, b, c ); private void solucion (int n, char a, char b, char c) { if (n == 1) System.out.println("Mover el disco "+n+" del palo "+a+" al palo "+b); else{ solucion(n-1, a, c, b); System.out.println("Mover el disco "+n+" del palo "+a+" al palo "+b); solucion(n-1, c, b, a);
3 CAPÍTULO 4. PILAS 3 static public void main (String [ ] args) { Hanoi han = new Hanoi(); 4.2. Implementación Una pila es una lista con la restricción que las inserciones y supresiones son siempre por el mismo lado, denominado tope. La interfaz para el manejo de este tipo de datos es la siguiente: interfaz Apilable { public void push(object); public void pop(); public Object top(); Las operaciones básicas con las pilas son: push. Inserta el elemento al frente de la pila. pop. Elimina el elemento que se insertó al último. Si la pila está vacía causa un error. top. Regresa el valor del elemento que se insertó al último. Si la pila está vacía causa un error (NoSuchElementException). Con este método no se altera el estado de la pila. estávacía. Para saber si la pila está vacía. limpiar. Para vaciar el contenido de una pila. A continuación la implementación de las operaciones para pilas usando nodos ligados. public class Pila extends Apilable { private Nodo tope; * Construye la pila. public Pila() { tope = null;
4 CAPÍTULO 4. PILAS 4 * Verifica que la pila esté llena. En esta implementación false siempre. public boolean estállena() { return false; * Verifica que la pila esté vacía. true si lo está y falso en otro caso. public boolean estávacía (){ return tope == null; * Vacía una pila. public void vaciapila() { tope = null; * Devuelve el elemento del tope de la pila (sin alterar ésta) * o bien null si se encuentra vacía. public Object top() { return (estávacía())? null : tope.elemento; * Extrae el elemento del tope de la pila. * Devuelve null si la pila está vacía. public Object pop() { if (estávacía()) return null; Object dato = tope.elemento; tope = tope.sgte; return dato;
5 CAPÍTULO 4. PILAS 5 * Inserta un nuevo elemento en la pila. x el elemento a insertar. public void push(object x) { tope = new Nodo(x, tope); * Iterador para conseguir todos los elementos de la pila sin alterarla. public java.util.iterator elementos() { return new MiIterador(); private class MiIterador implements java.util.iterator { private Nodo posicion = tope; public boolean hasnext() { return tope!= null; public Object next() { //throws NoSuchElementException { if (hasnext()) { Object o = posicion.elemento; posicion = posicion.sgte; return o; // throw new NoSuchElementException(); return null; public void remove() { throw new IllegalStateException(); El tiempo que toma cada una de las operaciones sobre pilas con la implementación anterior es constante y no depende del tamaño de la pila Balanceo de elementos A pesar de ser muy pocas las instrucciones sobre una pila, éstas son además de eficientes muy poderosas. En esta sección se presenta un problema que requiere en su solución el uso de una pila.
6 CAPÍTULO 4. PILAS 6 El problema consiste en determinar si una expresión aritmética tiene bien anidados sus paréntesis. Considerando tres tipos de éstos. Es decir, que no ocurra que se tengan más paréntesis de un tipo que de otro y que cierren adecuadamente. Por ejemplo, (a+[b*c]/[d-h])*25 {a+{b+c+{d+e+e {a+{b+c+{d+e+e ((a+b es correcta es correcta es incorrecta es incorrecta El algoritmo es el siguiente: 1. Crear una pila vacía. 2. Leer cada elemento de la cadena, para cada uno hacer: a) Si el caracter es un símbolo que abre ([{, meterlo a la pila. b) Si es uno que cierra y la pila está vacía, reportar un error. c) Si es uno que cierra y la pila no está vacía, sacar de la pila un caracter y verificar que corresponda con el símbolo que abre. Si no es así reportar un error. d) Cualquier otro caracter ignorarlo. 3. Si la pila no está vacía reportar un error. La programación del algoritmo anterior se presenta a continuación: public class Parentesis { Pila pila = new Pila(); public static void main (String [ ] args) { Parentesis linea = new Parentesis(args[0]); public Parentesis (String linea) { for (int i = 0; i < linea.length(); i++) if (linea.charat(i) == ( ) pila.push(new Character( ) )); else if (linea.charat(i) == { ) pila.push(new Character( )); else if (linea.charat(i) == [ ) pila.push(new Character( ] )); else if (linea.charat(i) == ) ) verifica( ) ); else if (linea.charat(i) == ) verifica( ); else if (linea.charat(i) == ] ) verifica( ] ); if (pila.estávacía())
7 CAPÍTULO 4. PILAS 7 System.out.println("Parentesis balanceados"); else reportaerror(); private void verifica (char c) { if (pila.estávacía()) reportaerror(); Character s = pila.pop(); if (c!= s.charvalue()) reportaerror(); private void reportaerror() { System.out.println("Parentesis NO balanceados"); System.exit(1); 4.4. Conversión de infija a postfija Si se tiene la expresión A+B se piensa sumar A con B, es decir primero se piensa la operación y luego los operandos. La notación usual se conoce como infija (A+B) y la que pensamos, prefija (+AB). Existe otra notación que se denomina postfija en la cual el operador va después de los operandos. Por ejemplo, AB+. Ejemplos de expresiones en notación postfija son: A+B*C --> A+(BC*) --> A(BC*)+ --> ABC*+ (A+B)*C --> (AB+)*C --> (AB+)C* --> AB+C* A+B-C --> AB+C- (A+B)*(C-D) --> AB+CD-* ((A+B)*C-(D-E))^(F+G) --> AB+C*DE--FG+^ Tener la expresión de esta forma, facilita su evaluación como se verá en la siguiente sección. Para simplificar este algoritmo sólo se utilizan los operadores de suma, multiplicación y paréntesis, con las reglas de precedencia de siempre y se asume que la expresión es correcta. Ejemplos: a + b * c + (d * e + f) * g ----> abc*+de*f+g*+ El algoritmo de conversión empieza teniendo una pila vacía y una expresión, en notación infija, correcta.
8 CAPÍTULO 4. PILAS 8 1. Leer un elemento. 2. Mientras haya elementos, hacer los pasos a al e: a) Si se tiene un operando se coloca directamente en la salida. (El orden de estos no se altera). b) Si es el primer operador se debe colocar en la pila incluyendo un paréntesis izquierdo. c) Si es un paréntesis derecho se sacan de la pila los operadores que ahí se encuentren y se van colocando en la salida cada uno, hasta encontrar el paréntesis izquierdo correspondiente, el cual se saca de la pila pero no se coloca en la salida. d) Si es un operador diferente de paréntesis derecho, se sacan de la pila todos los operadores de mayor o igual prioridad que el que se tienen en la mano, excepto el paréntesis izquierdo. Al finalizar se coloca el operador en la pila. e) Leer el siguiente elemento 3. Se sacan de la pila todos los operadores. En este algoritmo la pila representa los operadores pendientes. El algoritmo es de orden O(n). Una pequeña observación a-b-c se convierte en ab-c- lo cual es correcto debido a que la asociación es de izquierda a derecha. Como no es el caso de la exponenciación, no funcionaría este algoritmo para ese operador Evaluación de expresiones Una vez que se tiene una expresión aritmética en notación postfija su evaluación es muy sencilla y también requiere de una pila. El algoritmo es el siguiente: 1. Inicia con una pila vacía 2. Se lee cada símbolo de la expresión. Para cada uno hacer: a) Si el símbolo es un operando se mete a la pila. b) En caso contrario, se trata de un operador. En este caso se sacan los dos elementos del tope de la pila; se realiza la operación y el resultado de la misma se coloca en la pila. op2 = p.pop(); op1 = p.pop(), valor = op1 simbolo op2; p.push(valor);
9 CAPÍTULO 4. PILAS 9 3. Finalmente se saca de la pila el resultado. Ejemplo, seguir el algoritmo con la siguiente expresión: / + * 2 ^ Juego de cartas
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 [email protected] 1 Contenido 1. Definición y operaciones
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
Colas. 5.1 Implementación
Capítulo 5 Colas Las colas al igual que las pilas son un tipo especial de listas en las cuales los elementos se insertan por un lado y se eliminan por el otro. Es decir se sacan en el mismo orden en que
Algoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez
Algoritmos y Estructuras de Datos Iteradores Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/26 Iteradores Es muy común
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
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
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,
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 [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Descripción
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
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 [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Descripción
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
Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1
Interfaces Amparo López Gaona Septiembre de 2008 Amparo López Gaona () Interfaces Septiembre de 2008 1 / 1 Interfaces Las interfaces Java permiten al diseñador de clases establecer su forma definiendo
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
Tipos abstractos de datos (TAD)
Capítulo 2 Tipos abstractos de datos (TAD) Objetivo: Introducir al alumno las estructuras de datos mediante el concepto de tipo abstracto de datos. En este capítulo se presenta una primera implementación
1. Leer el primer número y almacenarlo en la raíz del árbol. 2. Repetir hasta encontrar un duplicado o el árbol esté vacío.
Capítulo 6 Árboles 6.1 Introducción Esta no es una estructura lineal, deben conocerlos de matemáticas finitas. Ejemplos: la tabla de contenido de un libro, los que se hacen en los torneos, los arboles
ELO320 Estructuras de Datos y Algoritmos. Stacks y Colas. Tomás Arredondo Vidal
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 0-201-31663-3. 2001
Estructuras de Datos Clase 7 Listas e Iteradores (segunda parte)
Estructuras de Datos Clase 7 Listas e Iteradores (segunda parte) 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
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
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
Alonso 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
Programación de sistemas Árboles
Programación de sistemas Árboles Departamento de Ingeniería Telemática 1 Contenidos Concepto de árbol Terminología Implementación Casos especiales Árboles binarios de búsqueda Montículos (heaps) 2 Concepto
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
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
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
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
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
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
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.
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
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
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
LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C)
APRENDERAPROGRAMAR.COM LA ESTRUCTURA DE DATOS PILA EN JAVA. CLASE STACK DEL API JAVA. EJEMPLO Y EJERCICIOS RESUELTOS. (CU00923C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado
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 [email protected] Actualización: 11
Programación II Árboles binarios de búsqueda (ABB)
Programación II Árboles binarios de búsqueda (ABB) Definición Un árbol binario de búsqueda(abb) a es una estructura de datos de tipo árbol binario en el que para todos sus nodos, el hijo izquierdo, si
NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS
1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para
Programación de sistemas
Programación de sistemas Árboles Julio Villena Román MATERIALES CREADOS EN EL TRABAJO DE DIFERENTES AUTORES: Carlos Delgado Kloos, M.Carmen Fernández Panadero, Raquel M.Crespo García,
PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07
PROGRAMACION ORIENTADA A OBJETOS Ingenieria Informática Final Febrero 2006/07 Ejercicio 1. Un indice de referencias cruzadas de las palabras que aparecen en un texto es una tabla por palabras y, por cada
Métodos CON valor de retorno
Métodos Estáticos C# Fundamentos de Programación. Objetivos del tema: Qué es un método? Qué métodos conoces? Métodos que NO devuelven valor. Métodos que SI devuelven un valor. Paso de parámetros. Variables
Ejercicio 1 (proyecto prlistas, paquete listas)
PRÁCTICA 3 Curso 2004-05 En esta práctica construiremos y usaremos dos paquetes: el primero, listas, que implementa listas genéricas y el segundo, colas, que implementa colas y colas de prioridades genéricas.
Curso 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
Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño
Clase adicional 9 Temas Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño Listas enlazadas Previamente en este curso, ya habrá trabajado con dos de las estructuras de datos
Programación de sistemas Pilas y Colas
Programación de sistemas Pilas y Colas Departamento de Ingeniería Telemática 1 Contenidos Pilas (stacks) Colas (queues) Colas dobles (deques double-ended queues) 2 Pilas Estructura de datos lineal Inserción
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
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)
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos 1! 1. Algoritmos recursivos " 1.1 Algoritmos recursivos. Recursión simple " 1.2 Algoritmos con vuelta atrás y ejemplos! 2. Complejidad de
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
PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }
PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)
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
Pilas. Uso (I) * 2 = * + Transformación de expresiones aritméticas de notación infija a postfija. Ejemplo:
Pilas. Uso (I) Transformación de expresiones aritméticas de notación infija a postfija. Ejemplo: 6 + 3 * 2 = 6 3 2 * + Se realiza en una sola pasada, usando una pila donde se van apilando los operadores.
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
Sólo una opción es correcta en cada pregunta. Cada respuesta correcta suma 1 4. puntos. Cada respuesta incorrecta resta 1 12
Programación de Sistemas Grados en Ingeniería de Sistemas Audiovisuales, Ingeniería de Sistemas de Comunicaciones, Ingeniería en Sistemas de Telecomunicación e Ingeniería Telemática Leganés, de julio de
Elementos léxicos del lenguaje de programación Java
Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores
Estructuras de Datos Clase 6 Listas e Iteradores (primera parte)
Estructuras de Datos Clase 6 Listas e Iteradores (primera parte) 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
Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
Programación II Arboles Binarios(AB)
Programación II Arboles Binarios(AB) Definición Un árbol consta de un conjunto finito de elementos, denominados nodos, y un conjunto finito de líneas dirigidas, denominadas enlaces, que conectan los nodos.
Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011
Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Fundamentos de Programación 15 de diciembre de 2011 Ejercicio 1 (2 puntos) SOLUCIONES class TarjetaDeCredito
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
Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota:
Docente: Juan Carlos Pérez P. Alumno : Fecha : Nota: Justificación: Se pretende con éste contribuir a que el alumno se inicie y conozca el entorno del IDE en la creación de pequeños programas en java Objetivos:
Práctica 11e. Práctica 11e. José M. Ordax
Práctica 11e José M. Ordax [email protected] 1 Copyright 2005 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación de javahispano
PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica
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
Soluciones Ejercicios Tema 7. Cambio de Signo Pila (3/3) if (!p.esvacia()) { d i l cambiasignopila(p); this.apilar(new Integer(-dato));
Cambio de Signo Pila (1/3) Soluciones Ejercicios Tema 7 Germán Moltó Martínez [email protected] Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica
LISTAS, PILAS Y COLAS
1 LISTAS, PILAS Y COLAS Muchos algoritmos requieren una representación apropiada de los datos para lograr ser eficientes Esta representación junto con las operaciones permitidas se llama Estructura de
Estructura de Datos. Índice
TEMA 5. ÁRBOLES (I) 1 Índice 1. Concepto de árbol 2. Árboles binarios 1. Especificación informal del TAD árbol binario 2. Implementación del TAD árbol binario 3. Recorrido de un árbol binario 4. Árboles
Manejo de archivos de acceso directo en Java.
Manejo de archivos de acceso directo en Java. Alumno.java package uam.edoo.archivos.directo.clases; public class Alumno { public static final int TAMANIO = 200; private String nombre; private String licenciatura;
INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C)
APRENDERAPROGRAMAR.COM INTERFACE ITERATOR DEL API JAVA. MÉTODO REMOVE PARA BORRAR OBJETOS EN COLECCIONES. EJERCICIOS Y EJEMPLO RESUELTO. (CU00919C) Sección: Cursos Categoría: Lenguaje de programación Java
Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java (II) Dr. (c) Noé Alejandro Castro Sánchez Sintaxis de Java Sintaxis Define las reglas que determinar el uso de palabras clave, operadores y variables para construir y evaluar expresiones.
Un calculadora avanzada... y algo más!
INFORMÁTICA, GRUPO D Un calculadora avanzada... y algo más! Vamos a familiarizarnos con el entorno interactivo de Python. Vamos a construir expresiones aritméticas y a guardar los resultados en variables
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:
Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende
Estructuras de datos y algoritmos
Estructuras de datos y algoritmos 1. Introducción 2. Estructuras de datos lineales 3. Estructuras de datos jerárquicas 4. Grafos y caminos 5. Implementación de listas, colas, y pilas 6. Implementación
Unidad III: Estructuras lineales
Unidad III: Estructuras lineales Listas En Ciencias de la Computación, una lista enlazada es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras estructuras de datos.
Expresiones 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.
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays
Estructuras de control selectivas
Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos
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
Estructuras de Datos Dinámicas: Tipo de Dato Abstracto parte I. Programación I Departamento de Informática Universidad Nacional de San Luis Argentina
Estructuras de Datos Dinámicas: Tipo de Dato Abstracto parte I Programación I Departamento de Informática Universidad Nacional de San Luis Argentina Progreso de la Abstracción Los diferentes niveles de
Programación de sistemas Recursión
Programación de sistemas Recursión Departamento de Ingeniería Telemática 1 Contenidos Recursión Tipos de recursión Recursión vs. iteración 2 Recursión Proceso por el cual un método se llama a sí mismo
