Soluciones Ejercicios Tema 8
|
|
|
- Ramón Soriano Murillo
- hace 7 años
- Vistas:
Transcripción
1 Traza Pila (1/2) Pila<Integer> p = new ArrayPila<Integer>(); Soluciones Ejercicios Tema 8 Germán Moltó Martínez [email protected] Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia = -1 p.apilar(new Integer(4)); 4 = 0 p.apilar(new Integer(5)); 4 5 = Traza Pila (2/2) p.apilar(new Integer(6)); = 2 p.apilar(new Integer(7)); Integer i = p.desapilar(); 3 = = 2, i = 7 p.tostring(); borrabase y Base en Pila Añadimos los nuevos métodos a la especificación de Pila y realizamos su implementación en la clase ArrayPila public void Base(){ E tmp; tmp = elarray[0]; elarray[0] = elarray[]; elarray[] = tmp; 4 package modelos; public interface Pila<E> { void apilar(e x); E desapilar(); E (); boolean esvacia(); E borrabase(); void Base();
2 borrabase y Base en Pila public class ArrayPila<E> implements Pila<E> { public void Base(){ public E borrabase() { E base = elarray[0]; for ( int i = 1 ; i <= ; i++){ elarray[i-1] = elarray[i]; --; return base; // Fin de la clase ArrayPila 5 Reemplazar Ocurrencias en Pila (1/3) Enriquecemos el modelo de pila 6 package modelos; public interface Pila <E>{ void apilar(e x); E desapilar(); E (); boolean esvacia(); int reemplaza(e x, E y); Reemplazar Ocurrencias en Pila (2/3) Implementación del método utilizando únicamente la especificación de Pila package librerias.estructurasdedatos.lineales; import librerias.estructurasdedatos.modelos. estructurasdedatos *; public class ArrayPila<E> implements Pila<E>{ public int reemplaza(e x, E y){ int nreemp = 0; if (!esvacia()){ E aux = desapilar(); nreemp += reemplaza(x, y); if (aux.equals(x)) {apilar(y); nreemp++; else apilar(aux); return nreemp; 7 Reemplazar Ocurrencias en Pila (3/3) Implementación del método teniendo acceso a la implementación package librerias.estructurasdedatos.lineales; import librerias.estructurasdedatos.modelos.*; public class ArrayPila<E> implements Pila<E> { public int reemplaza(e ( x, E y){ int nreemp = 0; for (int i = ; i >= 0 ; i--) { if (elarray[i].equals(x)) y[] ( { elarray[i] = y; nreemp++; return nreemp; 8
3 Traza Cola (1/4) Cola<Integer> q = new ArrayCola<Integer>() = 0, = -1, tallaactual = 0 Traza Cola (2/4) q.encolar(new Integer(7)); = 0, = 2, tallaactual = 3 q.encolar(new Integer(5)); 5 = 0, = 0, tallaactual = 1 q.encolar(new Integer(9)); = 0, = 3, tallaactual = 4 q.encolar(new Integer(3)); 5 3 = 0, = 1, tallaactual = 2 Integer y = q.desencolar(); = 1, = 3, tallaactual =3, y = Traza Cola (3/4) q.encolar(new Integer(8)); = 1, = 0, tallaactual = 4 Traza Cola (4/4) q.encolar(new Integer(1)) = 0, = 4, tallaactual = 5 Integer y = q.desencolar(); Tas ejecutar q.tostring(): = 2, = 0, tallaactual = 3, y = 3 q.encolar(new Integer(0)) = 2, = 1, tallaactual =
4 Localiza en LEGListaConPI (1/2) Implementación utilizando únicamente los métodos de la interfaz ListaConPI. public class LEGListaConPI<E> implements ListaConPI<E>{ public void localiza(e x){ 13 inicio(); i i boolean enc = false; while (!esfin() () &&!enc){ E dato = recuperar(); if (dato.equals(x)) enc = true; else siguiente(); Localiza en LEGListaConPI (2/2) Implementación utilizando los atributos: public class LEGListaConPI<E> implements ListaConPI<E>{ 14 public void localiza(e x){ boolean enc = false; ant = pri; while (ant.siguiente!= null &&!enc){ if (ant.siguiente.dato.equals(x)) enc = true; else ant = ant.siguiente; Método anterior en ListaConPI (1/2) 1. NO es posible implementar el método anterior con coste constante t con esas clases. Sin embargo es posible implementarlo con coste lineal con la talla del problema (número de elementos de la lista). public void anterior(){ NodoLEG<E> aux = pri; while (aux.siguiente!= ant) aux = aux.siguiente; ant = aux; 2. Se debe utilizar como representación interna una Lista Doblemente Enlazada (objetos NodoLDEG) para poder tener una referencia de un nodo a su nodo anterior. 15 Método anterior en ListaConPI (2/2) 2. (Continuacion). Se deben modificar las operaciones de inserción y borrado para actualizar la referencia al nodo anterior al involucrado. La implementación del método anterior: public void anterior(){ ant = ant.anterior; 16
5 Borrar en LEGListaConPI public void borra(e x){ boolean enc = false; inicio(); while (!esfin() &&!enc) { E dato = recuperar(); if (dato.equals(x)) { enc = true; eliminar(); else siguiente(); 17 Contar Apariciones de Cola (1/2) 1. Implementar la interfaz ColaExtendida package modelos; public interface ColaExtendida<E> extends Cola<E> { int contarapariciones(e x); 18 Contar Apariciones de Cola (2/2) 1. Implementar la clase ArrayColaExtendida suponiendo que se conoce y se tiene accesible la implementación interna de ArrayCola package librerias.estructurasdedatos.lineales; import librerias.estructurasdedatos.modelos.*; public class ArrayColaExtendida<E> extends ArrayCola<E> implements ColaExtendida<E> { public int contarapariciones(e ( x) { int indice= ; int contador=1; int apariciones=0; i while (contador<=tallaactual) { if (elarray[indice].equals(x)) ( apariciones++; indice= incrementa(indice); contador++; return apariciones; 19 Ampliando funcionalidad de ListaConPI (1/3) Implementar la interfaz ListaConPIPlus package librerias.estructurasdedatos.modelos; public interface ListaConPIPlus<E> extends ListaConPI<E> { void vaciar(); int talla(); 20
6 Ampliando funcionalidad de ListaConPI (2/3) Implementar la clase LEGListaConPIPlus suponiendo que se conoce y se tiene accesible la implementación interna de LEGListaConPI package librerias.estructurasdedatos.lineales; import librerias.estructurasdedatos.modelos.*; public class LEGListaConPIPlus<E> extends LEGListaConPI<E> implements ListaConPIPlus<E>{ public void vaciar(){ pri.siguiente = null; ant = pri; ult = pri; El mecanismo de recogida de basura provocará la eliminación en cascada de todos los nodos. 21 Ampliando funcionalidad de ListaConPI (3/3) Implementar la clase LEGListaConPIPlus suponiendo que se tiene accesible LEGListaConPI package librerias.estructurasdedatos.lineales; import librerias.estructurasdedatos.modelos.*; public class LEGListaConPIPlus<E> extends LEGListaConPI <E> implements ListaConPIPlus <E>{ public int talla(){ NodoLEG<E> aux = pri.siguiente; int contador = 0; while (aux!= null) { contador++; aux = aux.siguiente; return contador; 22 Implementación de Cola con Lista Enlazada (1/3) public class LEGCola<E> implements Cola<E>{ NodoLEG<E> E, ; public LEGCola(){ = = new NodoLEG<E>(null); public void encolar(e x){ NodoLEG<E> nuevo = new NodoLEG<E>(x); ().siguiente = nuevo; = nuevo; public E desencolar(){ E elprimero =.siguiente.dato;.siguiente =.siguiente.siguiente; 23 if (.siguiente == ) = ; return elprimero; Implementación de Cola con Lista Enlazada (2/3) public E (){ return.siguiente.dato; public boolean esvacia(){ return == ; public String tostring(){ NodoLEG<E> aux =.siguiente; String cadena = ""; while (aux!= null) { cadena += aux.dato + " "; aux = aux.siguiente; return cadena; /* Fin de LEGCola */ 24
7 Implementación de Cola con Lista Enlazada (3/3) Coste Temporal Asintótico (Para todos los métodos de Cola) Talla del problema: Número de elementos de la Cola. Instancias Significativas: No hay Cotas de Complejidad: Θ(1). El coste de los métodos con esta implementación es constante, al igual que con la implementación en array. Pero el coste espacial es mayor, debido a la memoria necesaria por los nodos y por los enlaces. 25 Implementación de Pila con LEG (1/2) public class LEGPila<E> implements Pila<E>{ NodoLEG<E> eltope; public LEGPila () { eltope=null; public void apilar(e x) { eltope=new NodoLEG<E>(x,elTope); public E () { return eltope.dato; 26 Implementación de Pila con LEG (2/2) public E desapilar() { E dato = eltope.dato; eltope = eltope.siguiente; return dato; public boolean esvacia() { return (eltope==null); ll) public String tostring() { String res = ""; for (NodoLEG<E> aux = eltope; aux!=null; aux=aux.siguiente) 27 return res; res += aux.dato +"\n"; El Modelo Secuencia (ArraySecuencia) (1/5) import librerias.excepciones.*; public class ArraySecuencia<E> implements Secuencia<E>{ protected int, talla; protected E elarray[]; protected al static int CAPACIDAD_POR_DEFECTO = 200; public ArraySecuencia(){ elarray = (E[]) new Object[CAPACIDAD_POR_DEFECTO]; = -1; talla = 0; 28
8 El Modelo Secuencia (ArraySecuencia) (2/5) public void insertar(e x){ if ( + 1 == elarray.length) duplicarvector(); ++; elarray[] = x; talla++; private void duplicarvector() { E nuevovector[] = (E[]) new Object[elArray.length length*2]; for ( int i = 0; i <= ; i++ ) nuevovector[i] = elarray[i]; elarray = nuevovector; El Modelo Secuencia (ArraySecuencia) (3/5) public int indicede(e x){ int i = 0; boolean enc = false; while (i < talla && (!enc)){ if (elarray[i].equals(x)) enc = true; else i++; if (enc) return i; else return -1; El Modelo Secuencia (ArraySecuencia) (4/5) public E borrar(e x) throws ElementoNoEncontrado{ E elborrado = null; int pos = indicede(x); if (pos == -1) throw new ElementoNoEncontrado("El elemento " + x + " no esta"); else { elborrado = elarray[pos]; for ( int i = pos ; i < talla-1; i++) elarray[i] = elarray[i+1]; talla--; return elborrado; El Modelo Secuencia (ArraySecuencia) (5/5) public E recuperar(int indice){ return elarray[indice]; public boolean esvacia(){ return talla == 0; public int talla(){ return talla; public String tostring(){ String cadena = ""; for (int i = 0; i<talla; i++) { cadena += elarray[i] + " "; return cadena; /* Fin de la clase ArraySecuencia */ 31 32
9 El Modelo Secuencia (LEGSecuencia) (1/5) public class LEGSecuencia<E> implements Secuencia<E> { protected NodoLEG<E>, ultimo; protected int talla; public LEGSecuencia(){ = ultimo = new NodoLEG<E>(null); talla= 0; public void insertar(e x){ NodoLEG<E> nuevo = new NodoLEG<E>(x); ultimo.siguiente i i t = nuevo; ultimo = nuevo; talla++; 33 El Modelo Secuencia (LEGSecuencia) (2/5) public E borrar(e x) throws ElementoNoEncontrado{ NodoLEG<E> aux = ; boolean enc = false; E elborrado = null; while (aux.siguiente!= null &&!enc) { if (aux.siguiente.dato.equals(x)) i t ( enc = true; else aux = aux.siguiente; if (!enc) throw new ElementoNoEncontrado("No esta " + x); else { elborrado = aux.siguiente.dato; if ( aux.siguiente == ultimo ) ultimo = aux; aux.siguiente = aux.siguiente.siguiente; talla--; return elborrado; 34 El Modelo Secuencia (LEGSecuencia) (3/5) public int indicede(e x) { NodoLEG<E> aux =.siguiente; int contador = 0; boolean enc = false; while (aux!= null &&!enc){ if (aux.dato.equals(x)) enc = true; else { contador++; aux = aux.siguiente; if (!enc) return -1; else return contador; 35 El Modelo Secuencia (LEGSecuencia) (4/5) public E recuperar(int indice){ NodoLEG<E> aux =.siguiente; iente; int i = 0; while ( i < indice) {aux = aux.siguiente; i++; return aux.dato; public boolean esvacia(){ return == ultimo; public int talla(){ return talla; 36
10 El Modelo Secuencia (LEGSecuencia) (5/5) El Modelo Secuencia (Costes) public String tostring(){ String cadena = ""; NodoLEG<E> aux =.siguiente; while (aux!= null) { cadena += aux.dato + " "; aux = aux.siguiente; return cadena; /* Fin de la clase LEGSecuencia */ ArraySecuencia: insertar, recuperar, esvacia, talla: Θ(1) Borrar: Θ(N) (Desplazamiento de datos) indicede: Ω(1), O(N) LEISecuencia insertar, esvacia, talla: Θ(1) borrar: Ω(1), O(N) indicede: Ω(1), O(N) recuperar: Θ(N) ) Invierte Pila (1/2) package librerias.estructurasdedatos.modelos; public interface Pila<E> { public void invertir(); package lineales; public class ArrayPila<E> implements Pila<E>{ public void invertir(){ for (int i = 0; i <= /2 ; i++){ swap(elarray, (la i, -i); 39 Invierte Pila (2/2) private void swap(e[] v, int pos1, int pos2){ E tmp; tmp = v[pos1]; v[pos1] = v[pos2]; v[pos2] = tmp; NOTA: Cuando hay un nº impar de elementos en la Pila el intercambio central no es necesario. El coste del algoritmo es lineal con el número de elementos de la pila, sin instancias significativas. 40
11 Cambia Signo en Pila public class LEGPilaInteger extends LEGPila<Integer> implements Pila<Integer>{ public void cambiarsigno() { for (NodoLEG<Integer> aux=this.; aux!=null; aux=aux.siguiente){ i aux.dato = new Integer(-(aux.dato.intValue())); Método anterior en LEGListaConPI (1/2) public void anterior() throws ElementoNoEncontrado{ // Sólo se ejecuta cuando hay un Elemento anterior al que ocupa el PI actual if ( ant == pri ) throw new ElementoNoEncontrado("Error: no hay anterior al del PI actual"); // ant.siguiente señala el PI actual. Recorrido hasta ant con un Enlace auxiliar NodoLEG<E> anteriorpi = pri; while ( anteriorpi.siguiente!= ant ) anteriorpi = anteriorpi.siguiente; /* Resolución del Recorrido: al terminar el bucle anteriorpi.siguiente == ant, por lo que basta con la instrucción ant = anteriorpi para que el PI de la Lista se sitúe sobre el anterior al actualmente apuntado. Nótese que si esfin()==true, el anterior es el último de la Lista */ ant = anteriorpi; Método anterior en LEGListaConPI (2/2) public void anterior() throws ElementoNoEncontrado{ if ( ant == pri ) throw new ElementoNoEncontrado("Error: no hay anterior al del PI actual"); ant = ant.anterior; //Coste independiente de la talla 43
Tema 8- Implementación de Pila, Cola y. Tema 8- Implementación de Pila, Cola y Lista con Punto de Interés. Representación Eficaz de una EDA
Tema 8- Implementación de Pila, Cola y Lista con Punto de Interés Tema 8- Implementación de Pila, Cola y Lista con Punto de Interés Índice general: 1. Representación Eficaz de una EDA Lineal 2. Implementación
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
Tema 4- Representación Enlazada
Tema 4- Representación Enlazada Tema 4: Representación Enlazada Índice general: 1. Representación Enlazada: Variables referencia Java como enlaces. 2. Listas Enlazadas Genéricas. Operaciones y costes.
Tema 6- Estructuras de Datos: Jerarquía de. Tema 6- Estructuras de Datos: Jerarquía de una EDA
Tema 6- Estructuras de Datos: Jerarquía de una EDA Tema 6- Estructuras de Datos: Jerarquía de una EDA Índice general: 1. Definición y Uso de una EDA 2. Diseño de una EDA en Java 3. Organización de una
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
1. Árbol Binario de Búsqueda: Las clases Java NodoABB y ABB. 1. Definición y representación en Java 2. Operaciones y su coste estimado
Tema 11- Implementación de Cola de Prioridad y Diccionario Mediante un ABB Tema 11- Implementación de Cola de Prioridad y Diccionario Mediante un Árbol Binario de Búsqueda Germán Moltó Escuela Técnica
Versión Iterativa de recuperar en un. Soluciones Ejercicios Tema 11. protected NodoABB<E> recuperarmax(nodoabb<e> n) { while (n.der!= null) n = n.
Versión Iterativa de recuperar en un ABB Soluciones Ejercicios Tema 11 Germán Moltó Martínez [email protected] Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad
Implementar rehashing en TablaHash. Soluciones Ejercicios Tema 13. Implementar toarray en TablaHash. Radares de Tráfico (I)
Implementar rehashing en TablaHash 1 Soluciones Ejercicios Tema 13 Germán Moltó [email protected] Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica
Ejercicios Tema 7. que tenga los mismos datos que la Pila original pero. Diséñese un método que invierta recursivamente una Cola dada.
Ejercicios Tema 7 Ejercicios Adatados de Auntes y Exámenes de EDA Germán Moltó [email protected] Estructuras de Datos y Algoritmos Escuela Técnica Suerior de Ingeniería Informática Universidad Politécnica
Propiedades (1/2) Soluciones Ejercicios Tema 14. Representación de Grafo (I) Propiedades (2/2) Grado del grafo: 6 V = 7 E = 12
Soluciones Ejercicios Tema Ejercicios Adaptados de Apuntes y Exámenes de EDA Germán Moltó [email protected] Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad
Tema 12- Implementación de Cola de Prioridad y Ordenación Rápida según un Montículo Binario
Tema - Implementación de Cola de Prioridad y Ordenación Rápida según un Montículo Binario Tema - Implementación de Cola de Prioridad y Ordenación Rápida según un Montículo Binario Germán Moltó Escuela
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
Versión Iterativa de recuperar en un. Ejercicios Tema 11. Implementa una versión del método recuperar iterativa con la siguiente especificación:
Versión Iterativa de recuperar en un ABB Ejercicios Tema 11 Ejercicios Adaptados de Apuntes y Exámenes de EDA Germán Moltó Martínez [email protected] Estructuras de Datos y Algoritmos Escuela Técnica
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 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
Propiedades. Ejercicios Tema 14. Representación de Grafo. Grado de Grafo (Matriz de Adyacencia)
Propiedades Ejercicios Tema Ejercicios Adaptados de Apuntes y Exámenes de EDA Germán Moltó [email protected] Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad
Mostrar Números Ascendentemente. Soluciones Ejercicios Tema 5. tostring Recursivo de LEG. Suma Recursiva de un Vector (1/3)
Mostrar Números Ascendentemente Soluciones Ejercicios Tema 5 Germán Moltó [email protected] Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica
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
Tema 10- Grafos. Objetivos:
Tema - Grafos Duración: 2 semanas aprox. Índice general:. Relaciones entre los Datos de una Colección 2. Conceptos básicos sobre Grafos. Representación de un Grafo: Matriz y Listas de Adyacencia. Implementación
Estructuras de datos: Pilas, Colas, Listas
Estructuras de datos: Pilas,, Facultad de Informática Universidad de A Coruña Pilas,, Table of Contents Pilas 1 Pilas 2 3 Pilas,, Table of Contents Pilas 1 Pilas 2 3 Pilas,, Pilas Acceso limitado al último
TEMA 3. Árboles. Objetivos. Contenidos. Bibliografía. Básica
TEMA 3. Árboles Objetivos En este tema se estudia una de las estructuras de datos no lineal más importante en computación, el árbol. Comenzaremos introduciendo la terminología asociada a los árboles y
PROGRAMACIÓN GENÉRICA
PROGRAMACIÓN GENÉRICA Lenguajes de Programación - Orientación a Objetos: Progr. Genérica 1 Programación genérica Objetivo: escribir algoritmos genéricos, independientes de las clases concretas de los datos
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
Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Soluciones Ejercicios Tema 3
1 Soluciones Ejercicios Tema 3 Germán Moltó [email protected] Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Solución Ejercicio
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.
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.
EDA. Tema 8 Colas de Prioridad: Heaps
EDA. Tema 8 Colas de Prioridad: Heaps Natividad Prieto Sáez. DSIC EDA, T-8. Curso 02/03. N.Prieto p.1/55 Objetivos Estudio de las definiciones asociadas a las Colas de Prioridad: Especificación: operaciones
La clase Grafo. 4 Algoritmos de recorrido de grafos. La clase Vertice. Tema 9: GRAFOS Segunda Parte Estructuras de Datos y Algoritmos Curso 2002/03
La clase Grafo public class Grafo { Tema 9: GRAFOS Segunda Parte Estructuras de Datos y Algoritmos Curso 00/03 private static final int TAMANYO_INICIAL=0; private Vertice tabla []; private int numvertices;
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
Examen Teórico Convocatoria de Junio de 2012
Examen Teórico Convocatoria de Junio de 2012 Nombre: DNI: Titulación: 1. Sobre el control de errores en Java: a) El siguiente método contiene un error de compilación debido al uso de excepciones. Explica
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)
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
Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad. Guillermo Román Díez
Algoritmos y Estructuras de Datos: Ordenación y Colas con Prioridad Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción a la Recursión
ESTRUCTURAS DE DATOS LISTAS 93
ESTRUCTURAS DE DATOS LISTAS 93 TEMA 3 Listas. 3.1. CONCEPTOS GENERALES. Una lista es una estructura de datos lineal que se puede representar simbólicamente como un conjunto de nodos enlazados entre sí.
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
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
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
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
1. Caminos Mínimos en un Grafo sin Pesos 2. Caminos Mínmos en un Grafo ponderado. 1. Algoritmo de Dijkstra
Tema - Soluciones Greedy para Problemas de Optimización sobre un Grafo Tema - Soluciones Greedy para Problemas de Optimización sobre un Grafo Germán Moltó Escuela Técnica Superior de Ingeniería Informática
Algoritmos y Estructuras de Datos Pilas LIFO y Colas FIFO. Guillermo Román Díez
Algoritmos y Estructuras de Datos Pilas LIFO y Colas FIFO Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Pilas LIFO y Colas FIFO 1/12
Estructuras de Datos Clase 14 Árboles binarios de búsqueda
Estructuras de Datos Clase 14 Árboles binarios de búsqueda 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,
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
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,
LISTAS ENLAZADAS FUNDAMENTOS TEORICOS
LISTAS ENLAZADAS FUNDAMENTOS TEORICOS Una lista enlazada es una colección o secuencia de elementos dispuestos uno detrás de otro, en la que cada elemento se conecta al siguiente elemento por un «enlace»
Pilas Motivación
Capítulo 4 Pilas Las pilas son estructuras muy sencillas y poderosas, también conocidas como LIFO (last in, first out) por la forma en que se trabaja con ellas. Ejemplo de ellas son las pilas de charolas
Construcciones del Lenguaje Java
Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.
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
Segundo Parcial de Programación 2 7 de junio de 2017
Instituto de Computación. Facultad de Ingeniería. Universidad de la República Segundo Parcial de Programación 2 7 de junio de 2017 Problema 1 (30 puntos) Considere un TAD T que permita almacenar a lo sumo
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
Árbol ABB equilibrado. Lección: Árboles. Algorítmica II (Tema 4) Lenguajes y Sistemas Informáticos, Universidad Pablo de Olavide 1/ 58
Algorítmica II (Tema 4) Lenguajes y Sistemas Informáticos, Universidad Pablo de Olavide 1/ 58 Índice 1 Árbol de búsqueda 2 2/ 58 Índice Árbol de búsqueda 1 Árbol de búsqueda 2 3/ 58 Árbol de búsqueda Es
LISTAS CIRCULARES. // Métodos private CElemento() {} // constructor. ultimo
LISTAS CIRCULARES Una lista circular es una lista lineal en la que el último elemento apunta al primero. Entonces es posible acceder a cualquier elemento de la lista desde cualquier punto dado. Las operaciones
PROGRAMACIÓN ORIENTADA A OBJETOS 1/7/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Sea una aplicación Java donde todas las clases están compiladas y empaquetas en un solo fichero JAR (programa.jar). Qué sería necesario para conseguir ejecutar
Soluciones. boolean pruebaiteraseriegeometrica () { Serie s= new SerieGeometrica (1, 2); return (s.iterator() instanceof IteraSerieGeometrica); }
dit UPM Depto. Ingeniería de Sistemas Telemáticos Universidad Politécnica de Madrid ETSI Telecomunicación Laboratorio de Programación 19 de Junio de 2002 Soluciones EJERCICIO 1 (UNA PÁGINA: UNA HOJA POR
Grados Ing. Inf. y Mat. Inf. Noviembre 2011 Algoritmos y Estructura de Datos Página 1 de 6
Grados Ing. Inf. y Mat. Inf. Noviembre 2011 Algoritmos y Estructura de Datos Página 1 de 6 Algoritmos y Estructura de Datos: Examen 2 (Solución) Grados Ing. Inf. y Mat. Inf. Noviembre 2011 Departamento
Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Tema 8. Listas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz
Tema 8. Listas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de la información Universitat
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 de sistemas Listas enlazadas
Programación de sistemas Listas enlazadas Departamento de Ingeniería Telemática 1 Contenidos *** Introducción a los genéricos Estructuras de datos Listas enlazadas La clase Node La clase LinkedList Ventajas
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.
Algoritmos y Estructuras de Datos: Introducción a la Recursión de Programas. Guillermo Román Díez
Algoritmos y Estructuras de Datos: Introducción a la Recursión de Programas Guillermo Román Díez [email protected] Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción
TEMA 4. Árboles CONSIDERACIONES GENERALES.
TEMA 4. Árboles CONSIDERACIONES GENERALES. Se detallan a continuación ejercicios de implementación de funcionalidades de árboles binarios con estructuras dinámicas (referencias). A la hora de abordar la
Tema 14 Grafos y su Implementación en Java. Parte I. Objetivos. Bibliografía
Tema Grafos y su Implementación en Java Tema Grafos y su Implementación en Java Parte I Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia Índice general:.
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
PRIMER EXAMEN PARCIAL. 5 de febrero de SOLUCIONES
FUNDAMENTOS DE PROGRAMACIÓN Curso: 2012/13 PRIMER EXAMEN PARCIAL. 5 de febrero de 2013. SOLUCIONES Versión:1.0.7 EJERCICIO 1: El tipo Beca a) 0,25 puntos public enum TipoBeca { ORDINARIA, MOVILIDAD, EMPRESA
Eneste capítulo se discute la estructura de datos lista como
Capítulo4 Listas Eneste capítulo se discute la estructura de datos lista como ejemplo particular de estructura dinámica para el almacenamiento y gestión de datos. El principal objetivo que se pretende
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...
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 Enlazadas AyED UTN-BA
Funciones para estructuras enlazadas Sin Plantilla El Nodo Con plantilla para un dato genérico en info El Nodo struct Nodo1 int info; Nodo* sig; ; Nodo1* p1 = new Nodo1(); struct Nodo2 string info; Nodo*
13. LISTAS Introducción Listas con punto de interés
Ricardo Ferrís / Jesús Albert Algoritmos y Estructuras de Datos I 13. LISTAS 13.1. INTRODUCCIÓN...59 13.2. LISTAS CON PUNTO DE INTERÉS...59 13.3. IMPLEMENTACIÓN DE LA CLASE LISTA EN C++...63 13.3.1 Implementación
Biblioteca de templates. template <typename T> void eliminar(t arr[], int& len, int pos);
ALGORITMOS Y ESTRUCTURA DE DATOS Machete Oficial 2014 Operaciones sobre arrays Biblioteca de templates Función: agregar Agrega el valor v al final del array arr e incrementa su longitud len. void agregar(t
