Tema 7. Tablas de Dispersión
|
|
- José Carlos Vidal Ramos
- hace 5 años
- Vistas:
Transcripción
1 Tema 7. Tablas de Dispersión 1. Introducción 2. Funciones de dispersión 3. Resolución de colisiones Exploración lineal Exploración cuadrática Encadenamiento 4. Análisis de costes 5. Implementaciones en Java EDA. Curso 2002/2003. Tema 7. N.Prieto p.1/58
2 Objetivos Motivar computacionalmente el estudio de las tablas Hash como estructura de almacenamiento por nombre, por ejemplo para su uso como tabla de símbolos de un compilador Estudio de la utilidad de una elección lógica de una función de dispersión para lograr una ocupación equilibrada de la tabla Estudio de las soluciones ante la colisión en la aplicación de la función de dispersión Exploración lineal Exploración cuadrática Encadenamiento Implementaciones y algoritmos sobre tablas Hash EDA. Curso 2002/2003. Tema 7. N.Prieto p.2/58
3 Bibliografía M.A. Weiss. Estructuras de Datos en Java. Ed. Addison Wesley, Capítulo 6, apartado 7 y capítulo 19. T.H. Cormen, C.E. Leiserson, R.L.Rivest. Introduction to Algorithms. MIT Press, Capítulo 12 R. Wiener, L.J. Pinson. Fundamental of OOP and Data Structures in Java. Cambridge University Press, Capítulo 16. EDA. Curso 2002/2003. Tema 7. N.Prieto p.3/58
4 Para qué se usa una Tabla Hash? Una tabla hash es una estructura de datos para representar conjuntos Permite representar diccionarios proporcionando costes medios constantes para las operaciones Las operaciones basadas en ordenación de elementos (buscarmin o listado en orden) no pueden implementarse de forma tan eficiente como en los ABB EDA. Curso 2002/2003. Tema 7. N.Prieto p.4/58
5 Qué es una tabla hash? Una tabla hash viene definida por un vector para almacenar los datos una función de dispersión Un método de resolución de colisiones El paquete estandar java.util proporciona la clase Hashtable, que es una implementación robusta y eficiente de las tablas de dispersión. EDA. Curso 2002/2003. Tema 7. N.Prieto p.5/58
6 La función de dispersión Una función hash convierte un elemento en un entero adecuado para indexar el vector de cubetas, h : U 0..B 1 La función hash debe distribuir los elementos uniformemente por toda la tabla La función hash debe de poder ser calculada de forma eficiente La función hash no es inyectiva, por lo que se producen colisiones EDA. Curso 2002/2003. Tema 7. N.Prieto p.6/58
7 Resolución de colisiones Exploración lineal Exploración cuadrática Encadenamiento separado EDA. Curso 2002/2003. Tema 7. N.Prieto p.7/58
8 Medida de la eficiencia de una tabla hash Factor de carga: relación entre el número de elementos almacenados y el tamaño de la tabla, f = N/B Número de pruebas: número de comparaciones necesario para determinar la presencia de un elemento en una tabla Número medio de pruebas: Valores más pequeños indican mayor eficiencia de la tabla EDA. Curso 2002/2003. Tema 7. N.Prieto p.8/58
9 Definición de la función de dispersión Sobre los números naturales Método de la División: h(k)= k mod B B es el tamaño de la tabla B debe ser un número primo no cercano a una potencia de 2 Método de la Multiplicación: h(k)= B(kA mod 1) 0<A<1 se suele tomar B como una potencia de 2 Sobre las cadenas de caracteres EDA. Curso 2002/2003. Tema 7. N.Prieto p.9/58
10 Funciones hash sobre cadenas Definición 1: hashmala int hash (String clave) { int valorhash=0; for (int i=0;i<clave.length;i++) valorhash+=clave.charat(i); return (valorhash%b); Problemas: No distribuye bien las claves si el tamaño de la tabla es grande Ejemplo: B=10007 y clave.length<8; 0<=hash(clave)<=1016 hash(abc)=hash(bca) EDA. Curso 2002/2003. Tema 7. N.Prieto p.10/58
11 Funciones hash (2) Definición 2: int hash (String clave) { int valorhash=clave.charat(0); for (int i=1;i<clave.length;i++) valorhash=(valorhash*256+clave.charat(i)) % B; return (valorhash); Problemas: Cálculo más costoso debido al cálculo de la operación mdulo dentro del bucle EDA. Curso 2002/2003. Tema 7. N.Prieto p.11/58
12 Funciones hash (3) Definición 3 int hash (String clave) { int valorhash=clave.charat(0); for (int i=1;i<clave.length;i++) valorhash=(valorhash*256+clave.charat(i)); return (valorhash%b); Problemas: Desbordamiento EDA. Curso 2002/2003. Tema 7. N.Prieto p.12/58
13 Funciones hash (4) Definición 4: static public int hashweiss(string clave, int tamanyotabla){ int valorhash = 0; for (int i= 0; i < clave.length() ; i++) valorhash = 37 * valorhash + clave.charat(i); valorhash %= tamanyotabla; if (valorhash < 0) valorhash += tamanyotabla; return valorhash; EDA. Curso 2002/2003. Tema 7. N.Prieto p.13/58
14 Funciones hash (5) Definición 5: Otros valores de la base int hash (String clave) { int valorhash=0; for (int i=0;i<clave.length;i++) valorhash=valorhash*4+clave.charat(i); return (valorhash % B); int hash (String clave) { int valorhash=0; for (int i=0;i<clave.length;i++) valorhash=valorhash*37+clave.charat(i); valorhash%=b; if (valorhash<0) valorhash+=b; return (valorhash); EDA. Curso 2002/2003. Tema 7. N.Prieto p.14/58
15 Comparación entre funciones hash (1) public class CollisionExperiment { private final int NUMBER_WORDS = ; String [] table; public void computecollisions () { int hashindex = 0; try {System.out.print ("Size\ Collisions"); for (int size=number_words;size<=10*number_words;size+=number_w table = new String[size]; BufferedReader diskinput=new BufferedReader (new InputStream new FileInputStream (new File("distinct. int collisions = 0; String line = diskinput.readline(); while (line!= null && line.length() > 0) { hashindex = Math.abs(line.hashCode()) % size; if (table[hashindex]= null) table[hashindex]=line; else collisions++; line = diskinput.readline(); System.out.println (size+"\t"+collisions); catch (Exception ex) {System.out.println(ex); EDA. Curso 2002/2003. Tema 7. N.Prieto p.15/58
16 Comparación entre funciones hash (2)... static public void main (String[] args) { CollisionExperiment app=new CollisionExperiment(); app.computecollisions(); EDA. Curso 2002/2003. Tema 7. N.Prieto p.16/58
17 Comparación entre funciones hash (3) EDA. Curso 2002/2003. Tema 7. N.Prieto p.17/58
18 Comparación entre funciones hash (4) EDA. Curso 2002/2003. Tema 7. N.Prieto p.18/58
19 Funciones Hash (distinct.txt pal.) hashcode hashmala hashweiss hash4 hash27 Numero de colisiones e e+06 Tamaˆ o de la tabla Comparación entre funciones hash (5) EDA. Curso 2002/2003. Tema 7. N.Prieto p.19/58
20 Comparación entre funciones hash (6) Size hashcode hashmala hashweiss hash4 hash EDA. Curso 2002/2003. Tema 7. N.Prieto p.20/58
21 La clase Hashtable de java.util Métodos constructores: public Hashtable() // construye una tabla hash vacia con una capacidad inicial 11 // y factor de carga de 0.75 public Hashtable(int initialcapacity) // construye una tabla hash vacia con la capacidad especificada // en el parámetro y factor de carga de 0.75 public Hashtable(int initialcapacity, float loadfactor) // construye una tabla hash vacia con la capacidad y factor de // carga especificados en los parámetros EDA. Curso 2002/2003. Tema 7. N.Prieto p.21/58
22 La clase Hashtable Métodos modificadores: public Object put(object key, Object value) // Añade el valor a la tabla con clave key public Object remove(object key) // elimina la clave y su correspondiente valor de la tabla // Si el n o de elementos almacenados excede B*factorCarga, // el tamaño de la tabla se incrementa dinámicamente en B // para asegurar que el factor de carga no se incrementa EDA. Curso 2002/2003. Tema 7. N.Prieto p.22/58
23 La clase Hashtable Métodos consultores: public boolean containskey(object key) // Comprueba si es una clave en esta tabla public boolean containsvalue(object value) // comprueba si el objeto está en la tabla public Object get(object key) // devuelve el valor asociado a la clave en la tabla public int size() // devuelve el número de entradas en la tabla EDA. Curso 2002/2003. Tema 7. N.Prieto p.23/58
24 Evaluación Diseño del experimento para evaluar la rapidez de acceso a la información utilizando una tabla hash: Usaremos un objeto de la clase Hashtable, que usa la función de dispersión hashcode de la clase String Almacenaremos en la tabla las palabras distintas Calcularemos el tiempo medio de acceso para buscar todas estas claves en la tabla EDA. Curso 2002/2003. Tema 7. N.Prieto p.24/58
25 Programa en Java (1) public void performtest() throws Exception { // para medir el tiempo long elapsedtime = 0L;long starttime, endtime; // formato DecimalFormat df = new DecimalFormat("0.##"); hash = new Hashtable(250000); // para lectura BufferedReader diskinput;string line; diskinput=new BufferedReader (new InputStreamReader ( new FileInputStream(new File ("distinct.txt")))); // Cada línea del fichero se inserta en la tabla line = diskinput.readline(); while (line!= null) { hash.put(line, line); line = diskinput.readline(); System.out.println ("Talla de la tabla hash= "+hash.size()); EDA. Curso 2002/2003. Tema 7. N.Prieto p.25/58
26 Programa en Java (2)... System.out.println ("Buscando las palabras sobre la tabla"); elapsedtime = 0; diskinput = new BufferedReader (new InputStreamReader ( new FileInputStream(new File ("distinct.txt")))); line = diskinput.readline(); while (line!= null) { starttime = System.currentTimeMillis(); if (hash.containskey(line)) count++; endtime = System.currentTimeMillis(); elapsedtime += endtime - starttime; line = diskinput.readline(); System.out.println ("Palabras revisadas por segundo="+ (int)(count*1000.0/elapsedtime) +" palabras/seg."); EDA. Curso 2002/2003. Tema 7. N.Prieto p.26/58
27 Resultados: Talla de la tabla hash= Buscando las palabras sobre la tabla Palabras revisadas por segundo= palabras/ EDA. Curso 2002/2003. Tema 7. N.Prieto p.27/58
28 Resolución de colisiones Sobre la tabla Exploración Lineal Exploración cuadrática Fuera de la tabla: listas de colisiones EDA. Curso 2002/2003. Tema 7. N.Prieto p.28/58
29 Exploración Lineal Incluye la búsqueda secuencial hasta encontrar una posición vacia si la posición inicial dada por la función hash está ocupada por otra palabra. Búsqueda circular. Para factores de carga altos las secuencias de encadenamiento son muy altas y el tiempo medio de acceso puede ser muy elevado. Ejemplo C={89,18,49,58,9, h(x)=x % B, B=10 EDA. Curso 2002/2003. Tema 7. N.Prieto p.29/58
30 Algoritmo de inserción 1. Calcular el valor del índice hash para la palabra a insertar 2. Si la posición en el vector está vacia, insertar la nueva palabra en esta posición 3. Si la posición en el vector está ocupada con una palabra diferente, incrementar secuencialmente el índice hasta encontrar la palabra o una posición vacia 4. Si la búsqueda efectuada en el paso anterior no tiene éxito, insertar la palabra en la posición vacia encontrada. EDA. Curso 2002/2003. Tema 7. N.Prieto p.30/58
31 Evaluación de la inserción El número de pruebas asociada con la inserción de una palabra utilizando este método es igual al número de posiciones del vector consultadas. Para factores de carga altos se forman cadenas de colisiones muy grandes y el número de pruebas necesarias para buscar una palabra incrementa significativamente EDA. Curso 2002/2003. Tema 7. N.Prieto p.31/58
32 Algoritmo de búsqueda 1. Calcular el valor del índice hash para la palabra a insertar 2. Si la posición en el vector está vacia, la palabra no está 3. Si la posición en el vector está ocupada con una palabra diferente, incrementar secuencialmente el índice hasta encontrar la palabra o una posición vacia 4. Si la búsqueda efectuada en el paso anterior termina porque se encuentra una posición vacia, la palabra no está EDA. Curso 2002/2003. Tema 7. N.Prieto p.32/58
33 Algoritmo de borrado Eliminación perezosa 1. Calcular el valor del índice hash para la palabra a insertar 2. Si la posición en el vector contiene la palabra a borrar se marca. 3. Si la posición en el vector está ocupada con una palabra diferente, incrementar secuencialmente el índice hasta encontrar la palabra o una posición vacia 4. Si la búsqueda efectuada en el paso anterior termina porque se encuentra la palabra, se marca como borrada EDA. Curso 2002/2003. Tema 7. N.Prieto p.33/58
34 Efecto del factor de carga public class LinearChainingApp { // Atributos int probes; boolean [] words = new boolean [1000]; // Holds virtual words Random rnd = new Random(); int count; public void generatetable (double loadfactor) { for (int i=0;i<1000;i++) words[i]=false; //vaciar tabla count = (int)(1000*loadfactor); probes = 0; for (int i=0;i<count;i++) { int hashindex=rnd.nextint(1000); while (words[hashindex]==true) { hashindex++;probes++; if (hashindex==1000) hashindex=0; words[hashindex]=true; probes++; EDA. Curso 2002/2003. Tema 7. N.Prieto p.34/58
35 Efecto del factor de carga static public void main (String[] args) { DecimalFormat df = new DecimalFormat("#.00"); LinearChainingApp app = new LinearChainingApp(); System.out.println("Factor de carga\tnumero medio de pruebas"); for (double lf = 0.1; lf <= 0.9; lf += 0.1) { app.generatetable(lf); System.out.println(df.format(lf)+"\t\t"+ df.format((double)app.probes/app.count)); for (double lf = 0.91; lf < 1.0; lf += 0.01) { app.generatetable(lf); System.out.println(df.format(lf)+"\t\t"+ df.format((double)app.probes/app.count)); EDA. Curso 2002/2003. Tema 7. N.Prieto p.35/58
36 Resultados Factor de carga Número medio de pruebas EDA. Curso 2002/2003. Tema 7. N.Prieto p.36/58
37 EDA. Curso 2002/2003. Tema 7. N.Prieto p.37/58 16 Evaluaciˆon de la exploracion lineal "reslinearch" u 1: Numero Medio de Pruebas Factor de Carga
38 Conclusiones Hasta factores de carga del orden del 70 % el comportamiento de la tabla es muy bueno (sobre 2 comparaciones) Para factores de carga del 80 % y superiores el comportamiento de la tabla se degrada rápidamente Un ABB balanceado con 1000 nodos requiere un número medio de comparaciones de 9, comparable a una tabla hash con factor de carga del 0.95 Una tabla hash con factor de carga del orden de 0.6 tiene un comportamiento que es cuatro veces más rápido que un ABB balanceado EDA. Curso 2002/2003. Tema 7. N.Prieto p.38/58
39 Exploración Cuadrática Su nombre se debe al uso de la función F (i) = i 2 en la eliminación de los conflictos Búsqueda circular: H, H + 1 2, H + 2 2, H + 3 2,..., H + i 2 Ejemplo C={89,18,49,58,9, h(x)=x % B, B=10 Los puntos siguientes de prueba distan de la posición original un número cuadrático de posiciones EDA. Curso 2002/2003. Tema 7. N.Prieto p.39/58
40 Implementación de la EC El tamaño de la tabla debe de ser un número primo y el factor de carga no debe de ser superior al 0.5 (Teorema 19.4) para asegurar que siempre insertaremos el nuevo elemento y para asegurar que ninguna celda será consultada dos veces durante un acceso Cálculo eficiente de las sucesivas posiciones de prueba (Teorema 19.5) H i = H i 1 + 2i 1(modB) (1) Expansión dinámica de la tabla para mantener el factor de carga: rehashing EDA. Curso 2002/2003. Tema 7. N.Prieto p.40/58
41 1000 EDA. Curso 2002/2003. Tema 7. N.Prieto p.41/58 Lineal Cuadratica Logaritmo del Numero medio de pruebas factor de carga Exploracion lineal vs cuadratica (Random) Lineal Cuadratica 30 Numero medio de pruebas factor de carga
42 Resultados de EL vs EC Sobre enteros y con función de hash la identidad # Factor de carga NMP-EL NMP-EC EDA. Curso 2002/2003. Tema 7. N.Prieto p.42/58
43 Resultados de EL vs EC Sobre Strings con la función hashcode # Factor de carga NMP-EL NMP-EC EDA. Curso 2002/2003. Tema 7. N.Prieto p.43/58
44 Efectos del rehasing 1000 Ahorro de memoria con Hashing Enlazado Expl. Lineal Expl. Cuadr Expl. Enlazada Expl. Lineal rehash Expl. Cuadr rehash Log. del numero medio de pruebas EDA. Curso 2002/2003. Tema 7. N.Prieto p.44/58
45 Hashing Enlazado Método alternativo de resolución de colisiones Definidos una función de dispersión y un cierto tamaño B para la tabla... Cada grupo de colisiones se almacenan en una lista explícita El número medio de pruebas en este tipo de tablas será del orden de la longitud media de las listas Para obtener NMP del orden de 2, es necesario que las listas tengan en promedio 2 elementos la elección de una buena función de dispersión es un aspecto crítico Un tamaño apropiado para la tabla es un número primo próximo a N/2 ó N/3 EDA. Curso 2002/2003. Tema 7. N.Prieto p.45/58
46 Hashing Enlazado 1000 Expl. Lineal vs Cuadratica vs Enlazada Expl. Lineal Expl. Cuadratica Expl. Enlazada Log. numero medio de pruebas EDA. Curso 2002/2003. Tema 7. N.Prieto p.46/58
47 Hashing Enlazado Eficiencia del Hashing Enlazado vs capacidad de la tabla FC=100% FC=63% FC=50% Numero medio de intentos EDA. Curso 2002/2003. Tema 7. N.Prieto p.47/58
48 Implementacion en Java EDA. Curso 2002/2003. Tema 7. N.Prieto p.48/58
49 La clase ExploracionTablaHash public abstract class ExploracionTablaHash { //Atributos protected EntradaHash tabla[]; // tabla es un array de EntradaHash private static final int CAPACIDAD_POR_DEFECTO = 11; // capacidad ini protected int tamanyoactual; // cuántos, de capacidad elementos, tie public ExploracionTablaHash(){... public final void vaciar(){... public boolean esvacia(){... public int tamanyo() {... public final static int hash(string clave){... protected abstract int buscarpos(hashable x); public final Hashable buscar(hashable x) throws ElementoNoEncontrado{... public final void eliminar (Hashable x) throws ElementoNoEncontrado{... public final void insertar (Hashable x){... EDA. Curso 2002/2003. Tema 7. N.Prieto p.49/58
50 La clase EntradaHash public class EntradaHash { private Hashable elemento; private boolean activo; // Elemento del Diccionario en la Tabla H // Estado del Elemento en la TH para elim public EntradaHash(Hashable elemento) { this.elemento = elemento; activo = true; // this (elelemento, true); public EntradaHash(Hashable elemento, boolean suestado){ this.elemento = elemento; activo = suestado; public Hashable elelemento(){ return this.elemento; public boolean estaactivo(){return this.activo; public void elemento(hashable esteelemento){this.elemento=esteelemento public void activo(boolean esteestado){this.activo = esteestado; EDA. Curso 2002/2003. Tema 7. N.Prieto p.50/58
51 La interfaz Hashable public interface Hashable{ // Devuelve el entero que codifica la clave del elemento sobre el que // se aplica. El valor de dicho entero está en el intervalo [0..capac int hash(); EDA. Curso 2002/2003. Tema 7. N.Prieto p.51/58
52 La constructora y vaciar public ExploracionTablaHash(){ tabla = new EntradaHash[CAPACIDAD_POR_DEFECTO]; //una vez asignada memoria a tabla, la inicializamos: todas sus compon // a null y tamanyoactual == 0 vaciar(); public final void vaciar(){ this.tamanyoactual = 0; for (int i = 0; i < tabla.length; i++) tabla[i] = null ; EDA. Curso 2002/2003. Tema 7. N.Prieto p.52/58
53 El método abstracto buscarpos // Al buscar/insertar/eliminar un elemento Hashable x, se aplica siempre // la función de localización hash que se acaba de definir. Ahora bien, p // resolver los conflictos que ésta pudiera ocasionar, el diseñador elige // un método de resolución, de exploración, que determina en QUÉ posición // la TablaHash se va a buscar/insertar/eliminar el elemento x. // Por tanto, el método que utiliza buscar/insertar/eliminar para buscar // efectiva de x en la tabla DEBE DEFINIRSE como ABSTRACTO en Exploración // e implementarse en una clase que la extienda, TablaExploracionX protected abstract int buscarpos(hashable x); EDA. Curso 2002/2003. Tema 7. N.Prieto p.53/58
54 El método buscar public final Hashable buscar(hashable x) throws ElementoNoEncontrado{ int posactual=buscarpos(x); if (tabla[posactual]==null tabla[posactual].estaactivo()==false) throw new ElementoNoEncontrado("buscar de Exploración Tabla Hash") return tabla[posactual].elelemento(); EDA. Curso 2002/2003. Tema 7. N.Prieto p.54/58
55 El método eliminar public final void eliminar (Hashable x) throws ElementoNoEncontrado{ int posactual=buscarpos(x); if (tabla[posactual]==null tabla[posactual].estaactivo()==false ) throw new ElementoNoEncontrado("eliminar de Exploración Tabla Hash" // OJO: eliminación perezosa tabla[posactual].activo(false); EDA. Curso 2002/2003. Tema 7. N.Prieto p.55/58
56 El método insertar public final void insertar (Hashable x){ int posactual = buscarpos(x); //Si la Entrada ya existe, se sobre-escribe. No se lanza Excepción algu this.tabla[posactual] = new EntradaHash(x,true); this.tamanyoactual++; // Si el factor de ocupación es >= 50%: REHASHING if (tamanyoactual >= tabla.length / 2){ EntradaHash tablaantigua [] = tabla; // Crear la nueva tabla con el doble de capacidad int nuevacapacidad = siguienteprimo( 2*tablaAntigua.length); this.tabla = new EntradaHash[nuevaCapacidad]; this.tamanyoactual = 0; //se redispersan sobre la tabla nueva todas las entradas activas for (int i=0; i<tablaantigua.length; i++) if (tablaantigua[i]!=null && tablaantigua[i].estaactivo()) insertar(tablaantigua[i].elelemento()); EDA. Curso 2002/2003. Tema 7. N.Prieto p.56/58
57 clase ExploracionTablaCuadratic //Implementación de la técnica de resolución de conflictos Exploración Cu public class ExploracionTablaCuadratica extends ExploracionTablaHash { protected final int buscarpos(hashable x){ int colision = 0; // Aplicación de la función hash definida para x, que en realidad // invoca a la de ExploracionTablaHash, que es la de Weiss int posactual = x.hash()%this.tabla.length; if (posactual < 0) posactual += this.tabla.length; // Búsqueda del lugar de inserción, que NO será posactual // si se produce una colisión. Estrategia de Exploración Cuadrática while ( tabla[posactual]!= null &&!tabla[posactual].elelemento().eq posactual += 2 * ++ colision - 1 ; if (posactual>=tabla.length ) posactual-=tabla.length; return posactual; EDA. Curso 2002/2003. Tema 7. N.Prieto p.57/58
58 La clase ExploracionTablaLineal //Implementación de la técnica de resolución de conflictos Exploración Li public class ExploracionTablaLineal extends ExploracionTablaHash { protected final int buscarpos(hashable x){ int colision = 0; // Aplicación de la función hash definida para x, que en realidad // invoca a la de ExploracionTablaHash, que es la de Weiss int posactual = x.hash() % this.tabla.length; if (posactual < 0) posactual += this.tabla.length; // Búsqueda del lugar de inserción, que NO será posactual // si se produce una colisión. Estrategia de Exploración Lineal while ( tabla[posactual]!= null &&!tabla[posactual].elelemento().eq posactual++; colision++; if ( posactual >= tabla.length ) posactual =0; return posactual; EDA. Curso 2002/2003. Tema 7. N.Prieto p.58/58
Práctica 5. Fecha límite de entrega: viernes, 14 de diciembre
Algoritmos http://www.lfcia.org/alg/ 2007-2008 Ingeniería Informática Ingeniería Técnica de Informática de Gestión Práctica 5 Fecha límite de entrega: viernes, 14 de diciembre Implementación de un Diccionario
Más detallesEDA. Tema 8 Colas de Prioridad: Heaps
EDA. Tema 8 Colas de Prioridad: Heaps Natividad Prieto Sáez. DSIC EDA, T-8. Curso 02/03. N.Prieto p.1/55 Objetivos Estudio de las definiciones asociadas a las Colas de Prioridad: Especificación: operaciones
Más detallesOBJETIVOS ÍNDICE BIBLIOGRAFÍA
OBJETIVOS Tema 9: GRAFOS Primera Parte Estructuras de Datos y Algoritmos Curso 2002/03 Definiciones formales de grafo y conceptos relacionados Estructuras de datos para representar grafos Algoritmos para
Más detallesTEMA 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
Más detallesTema 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
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 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 detallesHOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA
Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2008/2009 Nombre:... Fecha: / 01 / 2009 HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA Esta hoja de ejercicios nos servirá
Más detallesAgradecimientos. 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
Más detallesHashing (Funciones de Dispersión)
Hashing características Hashing (Funciones de Dispersión) Mauricio Solar Lorna Figueroa No necesita almacenamiento adicional (índice). Facilita la inserción y eliminación rápida de registros. Encuentra
Más detallesTema 4- Representación Enlazada
Tema 4- Representación Enlazada Tema 4: Representación Enlazada Índice general: 1. Representación Enlazada: Variables referencia Java como enlaces. 2. Listas Enlazadas Genéricas. Operaciones y costes.
Más detallesTema 13 - Implementación de un Diccionario según una Tabla de Dispersión
Tema 13 - Implementación de un Diccionario según una Tabla de Dispersión Germán Moltó Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia 1 Tema 13 - Implementación de
Más detalles1. Algunas clases del paquete java.util
Objetivos Modelización de un problema mediante clases. Utilización de la composición. Creación de objetos y envío de mensajes. Clases de java.util Índice 1. Algunas clases del paquete java.util 1 1.1.
Más detallesTema 13 - Implementación de un Diccionario según una Tabla de Dispersión. Objetivos. Bibliografía
Tema 13 - Implementación de un Diccionario según una Tabla de Dispersión Tema 13 - Implementación de un Diccionario según una Tabla de Dispersión Germán Moltó Escuela Técnica Superior de Ingeniería Informática
Más detallesTitulación: Ingeniero Técnico en Informática de Gestión Curso: 2º. Nombre-Apellidos:
Nombre-Apellidos: Nota: 1. Ejercicio (1 punto) Responder a las siguientes preguntas de tipo test, seleccionando sólo una de las respuestas. Se evaluarán sólo las respuestas contestadas con el siguiente
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 detallesPROGRAMACIÓ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
Más detallesEstructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010
Estructura de Datos Árboles Binarios de Búsqueda ABB Prof.: Mauricio Solar Prof.: Lorna Figueroa Primer Semestre, 20 1 Arboles de Búsqueda Binaria El árbol binario de búsqueda (ABB) toma su nombre del
Más detalles1. Á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
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 detallesEsquema básico de una Tabla de Dispersión
3 Tablas de Dispersión Estructura de datos para gestionar colecciones de elementos donde la búsqueda de un elemento puede hacerse en O(1) en un alto porcentaje de casos - mejora el tiempo de búsqueda en
Más detallesEstructuras de datos: Tablas de dispersión
Estructuras de datos: Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge sjorge@udc.es Referencias bibliográficas M. A. Weiss. Dispersión. En Estructuras de datos y algoritmos,
Más detallesConstrucciones 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.
Más detallesEstructura de datos y Programación
Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de
Más detallesPROGRAMACIÓ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
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 detallesHERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.
HERENCIA (2ª parte) Lenguajes de Programación - Orientación a Objetos: Herencia 2ª parte 1 Object En Java todas las clases derivan de otra, aunque no se diga explícitamente. Object: Es el nombre de la
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 detallesIntroducción a Java 10/02/2011. Tokens. Juan Manuel Fernández Peña Curso Rev Tokens. Tokens
Introducción a Java Juan Manuel Fernández Peña Curso 2005. Rev 2011 Comentarios: //comentario /* comentario fin de comentario */ /** comentario para javadoc fin */ Palabras reservadas: (como ejemplo) abstract,
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: NOTA FINAL: Nota Practica (1 punto) + Nota Examen (9 punto) Es indispensable aprobar el examen (4,5 puntos) para aprobar la asignatura (5 puntos) La práctica es opcional Duración:
Más detallesEstructuras 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,
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 detallesTablas de dispersión (hash tables)
Tablas de dispersión (hash tables) La dispersión es una técnica empleada para realizar inserciones, eliminaciones y búsquedas en un tiempo promedio constante. La estructura de datos ideal para la tabla
Más detallesTema 9- La Tabla de Dispersión (Hash)
Tema - La Tabla de Dispersión (Hash) Duración: semanas aprox Índice general: Implementación de las operaciones de un Diccionario en tiempo constante: ideas básicas Función de dispersión (hashing): características
Más detallesExamen 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
Más detallesIntroducción a Java LSUB. 30 de enero de 2013 GSYC
Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial
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 detallesIntroducción a Java. Fernando Cerezal López. 24 Noviembre 2005
24 Noviembre 2005 disponibles de acceso public private protected de tipo static abstract final modificadores más avanzados que no vamos a ver... Clase Sintaxis modificadores class nombreclase{} Tipos primitivos
Más detallesExamen parcial Convocatoria de junio de 2005 FUNDAMENTOS DE LA PROGRAMACIÓN
EJERCICIO 1 (1.5 puntos) Diseñe un conjunto de casos de prueba adecuado para comprobar el funcionamiento de un método encargado de calcular la duración de una llamada telefónica. Entradas Hora de inicio
Más detalles8. Colecciones e iteradores
8. Colecciones e iteradores - interfaz Collection - clases ArrayList, LinkedList, HashSet, TreeSet - interfaz Map - clases TreeMap, HashMap - Iteratores: interfaz Iterator El lenguaje de programación Java
Más detallesDiseño de tipos Igualdad, representación, código, copia y relación de orden
Práctica 4 Diseño de tipos Igualdad, representación, código, copia y relación de orden Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.1 Índice Gestión de excepciones
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 detallesINDICE Prologo 1 Recorrido rápido de java 2 Clases y objetos 3 Extensión de clases
INDICE Prologo XIII 1 Recorrido rápido de java 1.1. Para empezar 1 1.2. Variables 2 1.3. Comentarios en el condigo 1.4. Constantes con nombre 5 1.4.1. Caracteres Unicode 6 1.5. Flujo de control 7 1.6.
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 detallesSolución al Examen de Fundamentos de Computadores y Lenguajes
Solución al Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Final. Septiembre 2006 1) Se dispone de la siguiente clase enumerada. Escribir un método,
Más detallesTema 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
Más detallesClases abstractas e interfaces en Java
Clases abstractas e interfaces en Java Clases abstractas public abstract class Figura { private String _nombre; public Figura (string nombre) { _nombre = nombre; final public boolean mayor_que (Figura
Más detallesQué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.
APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje
Más detallesTema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom
Tema 05: Tablas hash 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 Función
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 detallesVersió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 gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica
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 detallesSoluciones Ejercicios Tema 8
Traza Pila (1/2) Pila p = new ArrayPila(); Soluciones Ejercicios Tema 8 Germán Moltó Martínez gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería
Más detallesADSW Tema 2 Diccionarios
ADSW Tema 2 Diccionarios José A. Mañas 10.3.2013 Contenido 1 interface Diccionario... 2 2 Implementaciones... 2 2.1 con arrays... 2 2.2 con arrays ordenados... 3 2.3 árbol binario de búsqueda... 5 2.4
Más detallesComputación Geométrica Colecciones en Java
Computación Geométrica Colecciones en Java Colecciones en Java Copyright 2010-2011 Universidad de Alicante 1 La interfaz Iterator La interfaz java.util.iterator se usa para recorrer las colecciones posicionales
Más detallesExamen de Estructuras de Datos y Algoritmos (Ingeniería Informática)
Examen de Estructuras de Datos y Algoritmos (Ingeniería Informática) Primera parte (50% nota del examen) Septiembre 2009 1) Se desea hacer un método con la cabecera que se muestra abajo que cree y retorne
Más detallesSoluciones al Examen de Fundamentos de Computadores y Lenguajes
Soluciones al Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Parcial. Junio 2005 1) Escribir una clase con un atributo privado que sea un array 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 detallesImplementar 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ó gmolto@dsic.upv.es Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica
Más detallesVariables. 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
Más detallesJAVA 1. Introducción
Diseño de Interfaces de Usuario JAVA. Introducción. Características Portabilidad Interpretado (bytecodes) Uso de Máquina Virtual Java (JVM) Orientado a Objetos Jerarquía de clases Extensible (packages)
Más detallesComenzamos. Curso : Estructuras de datos Docente: Ing. Héctor Fiestas Bancayán 1
Bienvenido a nuestra octava sesión, donde veremos cómo se eliminar nodos en las listas enlazadas y cómo son los programas de implementación correspondientes en Java. Comenzamos. Curso : Estructuras de
Más detallesIdentificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java
Identificadores, palabras reservadas, tipos de datos, operadores aritméticos y el sistema estándar de salida en Java Identificadores Las variables se utilizan en programación para almacenar temporalmente
Más detallesUnidad II Tema 3: Tratamiento de arreglos y cadenas en Java
Unidad II Tema 3: Tratamiento de arreglos y cadenas en Java Profesor: Jorge Escalona / Tobías Bolívar Email: escaljorge@gmail.com / tobiasbolivar@gmail.com Web: http://estructuradatos.tripod.com 1 Qué
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 detallesEsta aplicación se compone de 3 programas o clases, según el siguiente esquema: SueldoMedio.java. Sueldo.java
PROGRAMACIÓN I FECHA: 10-septiembre-2002 Programa de ficheros de E/S (lau puntu) Realizar una aplicación en Java para calcular el sueldo medio mensual de los empleados en activo en una empresa de Vitoria,
Más detallesAnálisis y Diseño de Algoritmos Tablas de Hash
Análisis y Diseño de Algoritmos Tablas de Hash Guillermo Morales-Luna Arturo Díaz Pérez CONTENIDO 1. Dispersión 2. Funciones de dispersión (a) Método de división (b) Método de multiplicación 3. Direccionamiento
Más detallesLista Simple con Puntero al Principio y Puntero al Final
Unidad 3 Estructuras de Datos Avanzadas Introducción Hasta el momento se estudiaron las siguientes estructuras estáticas y dinámicas básicas para representar diferentes colecciones de elementos: Arreglo
Más detallesFUNDAMENTOS DE INFORMÁTICA
ÁREA DE LENGUAJES Y SISTEMAS INFORMÁTICOS DEPARTAMENTO DE INFORMÁTICA E INGENIERÍA DE SISTEMAS ESCUELA DE INGENIERÍA Y ARQUITECTURA FUNDAMENTOS DE INFORMÁTICA 1ª CONVOCATORIA (16-junio-2011) Ejercicio
Más detallesProcesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
Más detallesSolucion al Examen de Fundamentos de Computadores y Lenguajes
Solucion al Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Parcial. Junio 2006 1) Escribir una clase que permita almacenar una lista de jugadores
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 detallesBibliografía (Java) Java: Introducción a Java
1 2 De a Contenido Introducción a Variables, tipos de datos y operadores Sentencias de control Subprogramas Tablas y matrices Excepciones Paquetes 3 4 Bibliografía () : Introducción a L. Lemay, C. Perkins.
Más detallesSoluciones al Examen de Fundamentos de Computadores y Lenguajes
Soluciones al Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Parcial. Junio 2004 1) Se desea crear una clase para hacer cálculos sobre el movimiento
Más detallesUnidad II. Fundamentos de programación en Java. Ing. José Luis Llamas Cárdenas
Unidad II Fundamentos de programación en Java Ing. José Luis Llamas Cárdenas En java para poder escribir se emplea el objeto System.out, t pero para leer del teclado es necesario emplear System.in Et Este
Más detallesAlgoritmos 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 groman@fi.upm.es Universidad Politécnica de Madrid Curso 2015-2016 Guillermo Román, UPM AED: Introducción a la Recursión
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 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 detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Introducción Práctica de Programación Java Antonio Rivero Cuesta Sesión X Colecciones... 6 Interfaz List... 15 ArrayList... 17 Recorrido Colecciones... 22 Iteradores en
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 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 detallesColas Implementación con gestión estática de memoria
Colas Implementación con gestión estática de memoria Esquema general 0 1 2 3 n - 1... _primero = 0 _ultimo = 0 Esquema general * Añadir un elemento a la cola. 0 1 2 3 n - 1 'a'... 1) _vector[_ultimo] =
Más detallesPráctica #5: Uso de control de flujo, Excepciones y Lectura Estándar
Práctica #5: Uso de control de flujo, Excepciones y Lectura Estándar Introducción El alumno creará cuatro programas en java que manejen control de flujo mediante las sentencias de bucle while y do/while,
Más detallesPROGRAMACION I Archivos directos
PROGRAMACION I Archivos directos Un archivo relativo (directo) consiste en una colección de registros de longitud fija almacenados uno al lado del otro en un dispositivo de almacenamiento de acceso directo.
Más detallesLISTAS 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
Más detallesArchivos Indice. Indexación y. Asociación. Conceptos Básicos Indices Ordenados Arboles. Asociación. Docente: Albert A.
Docente: Albert A. Osiris Sofía 1º Cuatrimestre 2002 Conceptos Básicos Indices Ordenados Arboles Asociación Indexación y Asociación Archivos Indice 1 2 3 1 Archivos Indice Ordenados Asociativos Primario
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 detallesProgramación Tema 9: Bibliotecas y Colecciones. Programación DIT-UPM
Programación Tema 9: Bibliotecas y Colecciones 1 Contenidos l Bibliotecas l Concepto de colección l Definición y uso de lista (List, ArrayList) l Recorridos sobre colecciones l Conjunto (Set, HashSet)
Más detallesPilas Motivación
Capítulo 4 Pilas Las pilas son estructuras muy sencillas y poderosas, también conocidas como LIFO (last in, first out) por la forma en que se trabaja con ellas. Ejemplo de ellas son las pilas de charolas
Más detallesExamen Teórico. Convocatoria de Julio de 2015
Examen Teórico Convocatoria de Julio de 2015 Nombre: DNI: Grupo: 1. Sobre la ejecución de aplicaciones Java desde la línea de comandos: a) Explica el significado y uso del parámetro cp. b) Indica si la
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 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 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 detallesExamen de Prácticas de Programación Ingeniería Informática
Examen de Prácticas de Programación Ingeniería Informática Junio 2007 1) (2 puntos) Escribir en Java la implementación de los métodos public void escribematrizenfichero(double[][] m, String nomfich)...
Más detallesAlgoritmos y Estructuras de Datos Tema 2: Diseño de Algoritmos
Algoritmos y structuras 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. omplejidad de los
Más detallesTablas de Dispersión
Tablas de Dispersión Representación de datos especialmente diseñada para que las operaciones de acceso, inserción y borra por valor o campo clave sean eficientes (tiempo promedio constante, indepiente
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 detallesAlonso Ramirez Manzanares Computación y Algoritmos 03.05
Tablas de hash (2) mat-151 Alonso Ramirez Manzanares Computación y Algoritmos 03.05 Tablas de hash: resolviendo colisiones por encadenamiento cuando el número de elementos en total es proporcional al número
Más detalles