Pilas Motivación
|
|
- Paula Río Márquez
- hace 5 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 dtorres@mixteco.utm.mx 1 Contenido 1. Definición y operaciones
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 detallesColas. 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
Más detallesAlgoritmos y Estructuras de Datos Iteradores. Guillermo Román Díez
Algoritmos y Estructuras de Datos Iteradores Guillermo Román Díez groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción 1/26 Iteradores Es muy común
Más detallesUNIDAD 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 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 detallesCLASE 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 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 detallesPilas. Carlos Delgado Kloos Dep. Ingeniería Telemática Univ. Carlos III de Madrid. Java: Pilas / 1
Pilas Carlos Delgado Kloos Dep. Ingeniería Telemática Univ. Carlos III de Madrid Java: Pilas / 1 Ejemplo Java: Pilas / 2 Ejemplo Java: Pilas / 3 Ejemplo Java: Pilas / 4 Características Estructura lineal
Más detallesEstructuras 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 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 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 detallesProfesor: 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 detallesInterfaces. 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
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 detallesTipos 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
Más detalles1. 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
Más detallesELO320 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
Más detalles2. Con una lista ordenada, aunque la localización y eliminación es rápida el problema es en la inserción de datos pues puede ser del orden de O(n).
Capítulo 7 Heap 7.1 Introducción Una cola de prioridad es una estructura de datos apropiada cuando la tarea más importante es localizar y/o eliminar el elemento con valor menor de una colección. Ejemplo
Más detallesEstructuras 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
Más detallesFrancisco 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 detallesUnidad 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
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 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 detallesProgramació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
Más detallesTitulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Leonardo DaVinci. Piccasso La Tempestad. Mona Lisa
1. Ejercicio (3,5 puntos) a) Complentar la especificación public class Galeria { LinkedList cuadrosportitulo; LinkedList cuadrosporautor; LinkedListItr itrcuadrosportitulo; LinkedListItr itrcuadrosporautor;
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 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 detallesTema: 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 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 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 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 detallesEstructuras 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 detallesCentro 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...
Más detallesIMPLEMENTACIÓ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 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 detallesEstructura 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 detallesESTRUCTURA 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 detallesLA 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
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 detallesProgramació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
Más detallesNIVEL 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
Más detallesProgramació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,
Más detallesPROGRAMACION 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ás detallesMé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
Más detallesEjercicio 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.
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 detallesClase 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
Más detallesESTRUCTURA 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 detallesESTRUCTURA 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: 1. Ejercicio (3 puntos) a) Qué estructura de datos utilizarías para transformar la siguiente expresión a su equivalente expresión postfija? Argumenta tu decisión. Ej. entrada:
Más detallesProgramació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
Más detallesEstructuras 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 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 detallesAlgoritmos 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
Más detallesTitulació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 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 detallesPROGRAMACIÓ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)
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 detallesProgramación de sistemas
Programación de sistemas Pilas y Colas Julio Villena Román MATERIALES BASADOS EN EL TRABAJO DE DIFERENTES AUTORES: Carlos Delgado Kloos, Jesús Arias Fisteus, Carlos Alario Hoyos 1
Más detallesPilas. 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.
Más detalles75-62 Técnicas de Programación Concurrentes II Lic. Ing. Osvaldo Clúa Facultad de Ingeniería Universidad de Buenos Aires.
75-62 Técnicas de Programación Concurrentes II Lic. Ing. Osvaldo Clúa 2008 Facultad de Ingeniería Universidad de Buenos Aires Java Generics Programación Genérica Los programas se escriben en función de
Más detallesTipos 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 detallesSó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
Más detallesElementos 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
Más detallesEstructuras 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
Más detallesCarlos 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
Más detallesProgramació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.
Más detallesDepto. 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
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 detallesDocente: 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:
Más detallesESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º
1. Ejercicio (1 puntos) Dado el array A={8, 3, 7, 1, 4, 9, 5, 2, 6 (a) Escribir la secuencia de ordenación del array A por medio del algoritmo de InsertionSort. {8, 3, 7, 1, 4, 9, 5, 2, 6 {3, 8, 7, 1,
Más detallesPráctica 11e. Práctica 11e. José M. Ordax
Práctica 11e José M. Ordax chemi@javahispano.org 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
Más detallesPROGRAMACIÓ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
Más detallesTipos 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 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 detallesSoluciones 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 gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica
Más detallesLISTAS, 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
Más detallesAlgoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1 Contenidos: 1. Características generales de C++ 2. Entrada/salida estándar 3. Variables y tipos de datos
Más detallesEstructura 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
Más detallesFUNDAMENTOS DE PROGRAMACIÓN Curso: 2012/13
FUNDAMENTOS DE PROGRAMACIÓN Curso: 2012/13 EXAMEN DE SEPTIEMBRE. 11 de septiembre de 2013. SOLUCIONES Ejercicio 1: 2,5 ptos public class GrupoNoValidoException extends RuntimeException { public GrupoNoValidoException(){
Más detallesColas. Carlos Delgado Kloos Dep. Ingeniería Telemática Univ. Carlos III de Madrid. Java: Colas / 1
Colas Carlos Delgado Kloos Dep. Ingeniería Telemática Univ. Carlos III de Madrid cdk@it.uc3m.es Java: Colas / 1 Ejemplo La cola del autobús La cola de la impresora cdk@it.uc3m.es Java: Colas / 2 Características
Más detallesManejo 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;
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 detallesINTERFACE 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
Más detallesIntroducció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.
Más detallesTema 2.- Objetos y mensajes
Tema 2.- Objetos y mensajes 1. Objetos y mensajes: mecanismo de envío de mensajes...2 2. SMALLTALK: EXPRESIONES...3 2.1. LITERALES: designan objetos constantes...3 2.2. NOMBRES DE VARIABLES: identifican
Más detallesUn 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
Más detalles1. 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 detallesUnidad 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
Más detalles2ª Parte: Problemas (5 puntos sobre 10)
NOMBRE: APELLIDOS: NIA: GRUPO: 2ª Parte: Problemas (5 puntos sobre 10) Duración: 1 hora 45 minutos Puntuación máxima: 5 puntos Fecha: 17 de Junio de 2013 PROBLEMA 1 (3 puntos) El sistema de gestión de
Más detallesTema 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 detallesEstructuras 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
Más detallesUnidad 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.
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 detallesLEA ATENTAMENTE ESTAS INSTRUCCIONES ANTES DE COMENZAR LA PRUEBA
Asignatura Estructura de Datos y Algoritmos Grado en Ingeniería Informática y Doble Grado en Informática y Administración de Empresas 24 de Marzo de 2014. SEGUNDO EXAMEN PARCIAL Nombre:... Apellidos:...
Más detallesPROGRAMACIÓ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
Más detallesEstructuras 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
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 detallesEstructuras 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
Más detallesProgramació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
Más detalles