Tablas Asociativas (Hash) Tablas: filas & columnas de información Especificación algebraica

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Tablas Asociativas (Hash) Tablas: filas & columnas de información Especificación algebraica"

Transcripción

1 Tablas Asociativas (Hash) Tablas: filas & columnas de información Una tabla tiene varios campos (tipos de información) Una guía telefónica podría tener campos como: nombre, dirección, número de teléfono, etc. Una cuenta de correo podría tener campos como: nombre de usuario (ID), password, nombre completo, etc. Para encontrar una en la tabla, sólo se necesita conocer el contenido de uno de los campos (no de todos ellos). Este concepto se conoce como key () En la guía de teléfonos, la suele ser el nombre En una cuenta de correo, la suele ser el nombre de usuario (ID) Idealmente, una identifica unívocamente una Si la es el nombre y ninguna en la guía tiene el mismo nombre, la identificará de forma unívoca cada Especificación algebraica Operaciones: CrearTablaVacia EsTablaVacia Está Recuperar Insertar Borrar 3

2 3.4.2 Especificación algebraica del TAD TipoTabla ESPECIFICACION Tablas PARAMETROS GENERICOS TIPOS TipoElemento, TipoClave OPERACIONES Clave: TipoElemento TipoClave FIN PARAMETROS GENERICOS TIPOS TipoTabla OPERACIONES (* CONSTRUCTORAS GENERADORAS *) CrearTablaVacia: TipoTabla Insertar: TipoTabla x TipoElemento TipoTabla (* OBSERVADORAS SELECTORAS *) PARCIAL Recuperar: TipoTabla x TipoClave TipoElemento Especificación algebraica del TAD TipoTabla (* OBSERVADORAS NO SELECTORAS *) EsTablaVacia: TipoTabla Booleano Esta : TipoTabla x TipoClave Booleano (* CONSTRUCTORAS NO GENERADORAS *) Borrar: TipoTabla x TipoClave TipoTabla VARIABLES e,e1,e2 : TipoElemento c : TipoClave t: TipoTabla ECUACIONES DE DEFINITUD SI Esta(t,c) DEF (Recuperar(t,c)) Especificación algebraica del TAD TipoTabla ECUACIONES ENTRE GENERADORAS (*Conmutatividad y prevalencia ultima insercion *) Insertar(Insertar(t, e1), e2) = SI Clave(e1) = Clave(e2) Insertar(t,e2) Insertar(Insertar(t,e2), e1) ECUACIONES (* Observadoras selectoras *) Recuperar(Insertar(t,e), c) = SI Clave(e)=c e Recuperar(t, c) 6

3 3.4.2 Especificación algebraica del TAD TipoTabla (* Observadoras no selectoras *) EsTablaVacia(CrearTablaVacia) = CIERTO EsTablaVacia(Insertar(t,e)) = FALSO Esta(CrearTablaVacia, c ) = FALSO Esta(Insertar(t,e),c ) = SI Clave(e) = c CIERTO Esta(t,c) (* Constructoras no generadoras *) Borrar(CrearTablaVacia, c) = CrearTablaVacia Borrar(Insertar(t, e), c) = SI Clave(e) = c Borrar(t,c) Insertar(Borrar(t,c), e) FIN ESPECIFICACIÓN 7 Implementación de tablas La elección de la implementación depende de las siguientes características Frecuencia de inserción y borrado de s Cantidad de s dispoblibles que es probable usar Patrón probable de búsquedas por e.g. Serán todas las búsquedas mediante una o dos s? La tabla es suficientemente pequeñas como para caber en memoria Vida útil de la tabla 8 NodoTabla: una y su Para las búsquedas se suele almacenar de forma separada la y la (incluso aunque se repita la información) NodoTabla Smith Smith, 124 Hawkers Lane, Yeo Yeo, 1 Apple Crescent,

4 0 0 Implementación 1: Array secuencial desordenado Array donde cada NodoTabla se almacena consecutivamente en cualquier orden Insertar: añadir al final del array; O(1) Encontrar: buscar por las s, potentialmente, todas O(n) Borrar: encontrar + reemplazar el nodo eliminado con el último; O(n) etc. 10 Implementación 2: Array secuencial ordenado Array donde NodoTabla se almacena consecutivamente y ordenado por la Insertar: añadir ordenado; O(n) Encontrar: búsqueda binaria; O(log n) Borrar: encontrar, eliminar el nodo y compactar; O(n) etc. Se puede utilizar la búsqueda binaria porque el array está ordenado 11 Implementación 3: Lista enlazada (ordenada o no) NodosTabla se almacenan de nuevo consecutivamente Insertar: añadir por cabecera; O(1) o O(n) para listas ordenadas Encontrar: buscar por todas las posibles s; O(n) también O(n) para listas ordenadas Borrar: encontrar y eliminar, corrigiendo los punteros correspondientes; O(n) etc. 12

5 Implementación 4: Árbol AVL Árbol AVL, ordenado por la Insertar: insección estándar; O(log n) Encontrar: búsqueda estándar (sin eliminar); O(log n) Borrar: borrado estándar; O(log n) O(log n) is el mejor de todos pero sería deseable O(1) etc. 13 Implementación 5: Tablas hash Array en el que NodosTabla no se almacenan consecutivamente Su posición de almacenamiento se determina aplicando una función hash a la 4 función hash índice del array 10 Clave dispersada (Hashed key): resultado de aplicar la función has a la Claves y s se dispersan por todo el array Implementación 5: hashing Array con NodosTabla almacenados no consecutivos su lugar de almacenado se calcula usando un función hash Insetar: calcular la posición de almacenamiento e insertar; O(1) Encontrar: calcular la posición de almacenamiento y devolver; O(1) Borrar: calcular la posición de almacenamiento y poner a null; O(1) Todas las operaciones son O(1)! 15

6 Ejemplo de dispersión (Hashing) : Tienda de frutas 10 posiciones en la table hash Números de Stock entre 0 and 1000 función hash : no. stock / 100 Qué ocurres si se inserta el no. 350? Posición 3 está ocupada: hay una colisión Estrategia de resolución de Colisiones: insertar en la siguiente posición libre Dado un número de stock, se encuentra la posición utilizando la función hash aplicada al no. stock, resolviendo las colisiones si fuese necesario key entry 85 85, manzanas , uvas , peras , naranjas , papayas 16 Factores que afectan al rendimiento de las tablas hash La función hash Idealmente debería distribuir las s y s por toda la tabla Debería minimizar las colisiones (posición devuelta por la función hash ya ocupada Estrategia de resolución de colisiones Encadenamiento separado: enlazar juntas varias / en cada posición Direccionamiento abierto: almacenar s/s en posiciones diferentes Tamaño de la tabla (suele ser un número primo) Demasiado grande: se desperdicia memoria Demasiado pequeño, icrementará las colisiones pudiendo forzar rehashing (copiar en una tabla mayor) Apropiado a la función hash utilizada 17 Selección de la función hash: convertir la en una posición Truncado (Truncation) Ignorar parte de la y utilizar el resto como el índice del array Técnica muy rápida pero puede causar el agrupamiento de las s en alguna zona concreta de la tabla (clustering) Plegado (Folding) Dividir la en varias partes y combinarlas de forma apropiada Utiliza toda la información de la (no como el truncado) Aritmética Modular (Modular arithmetic) Dividir la posicón por el tamaño de la tabla y tomar el resto como nueva posición Esta técnica se puede usar después de un truncado y/o plegado o sola 18

7 ( 1 ) Ejemplos de funciones hash Truncado: si los estudiantes tienen un identificador de 9- dígitos, tomar los tres últimos dígitos como posición de la tabla e.g se convierte en 622 Plegado: dividir el número de 9-dígitoa number en tres de 3- dígitos, y sumarlos e.g se convierte en = 1923 Aritmética Modular: si el tamaño de la tabla es 1000, e.g mod 1000 = ( 2 ) Ejemplos de funciones hash Usar el número de teléfono como El código de área no es aleatorio, no dispersará las s/s por toda la tabla (habrá muchas colisiones) Los últimos tres dígitos son más aleatorios Usar un nombre como Usar el nombre entero en vez del apellido (los apellidos son menos diversos) Asignar nombres a caracteres (e.g. a = 1, b = 2; o valores Unicode) Estrategia 1: Sumar los números resultanes. Inapropiado para tamaños grandes de tabla Estrategia 2: Calcular el número máximo de caracteres c (e.g. c = 54 {a,..z}+{a,..,z}+{ }+{_}). Multiplicar cada caracter en el nombre por potencias incrementales de c. Finalmente, sumar el resultado 20 Seleccionar el tamaño de la tabla para minimizar las colisiones Al aumenta el número de elementos en la tabla, la probabilidad de colisión aumenta hacer la tabla grande pero práctica Si el tamño de la tabla es 100, y las s dispersadas son divisibles por 10, habrá muchísimas colisiones Muy malo sin el tamaño es potencia de un entero pequeño (e.g. 2 o 10) En general, las colisiones suelen ser más frecuentes si: Máximo común divisor(s dispersadas, tamaño tabla) > 1 Consecuencia: tamaño de la tabla número primo (gcd = 1) Las colisiones podría seguir produciéndose estrategia de resolución de colisiones 21

8 Resolución de colisiones: direccionamiento abierto (1) Prueba (Probing): si la posición, dada por la dispersada, está ocupada, incrementar la posición una cantidad hasta encontrar una posicón vacía Prueba lineal: incrementar de 1 en 1 [mod tamaño_tabla] Prueba cuadrática: añadir a la posición original, 1, 4, 9, 16, Utilizar la resolución de colisiones según se inserta y cuando se busca (asegurándose de que es la que se está buscando) Se podría también hacer un hash doble: redispersar con otra función hash Con direccionamiento abierto, el tamaño de la tabla debería ser el dobe del número de elementos esperados 22 Resolución de colisiones: direccionamiento abierto (2) Si la tabla está vacia, si hay muchas colisiones, la prueba lineal puede agrupar (clustering) las s/s Incrementa el timpo de insertar y borrar Para tabla de tamaño n, si está vacía, la probabilidad de que en la siguiente se ocupe una posición cualquiera es 1/n En el diagrama, la probabilidad de que la posición 2 se ocupe después es 2/n (tanto si cae en la 1 o la 2 se ocupa la segunda) Una vez que la 2 está llena, la probabilidad de ocupar la posición 4 es 4/n y la 7 es 7/n (i.e. la probabilidad de obtener cadenas largas se incrementa sucesivamente) 23 Resolución de colisiones: direccionamiento abierto (3) Una / vacía indica el final de un grupo (cluster) Se puede utilizar para terminar una operación de encontrar ya que no podría aparecer más adelante Consecuencia: si se elimina una, dentro de un grupo, no se debería vaciar (Poner un flag que indique que está vacía) Permite que la prueba lineal siga hasta el final del grupo El elemento se marca como eleminado pero se mantiene el cluster para aumentar la eficiencia de las operaciones 24

9 Resolución de colisiones: ( 4 ) direccionamiento abierto Laprueba cuadrática es una solución para el problema del agrupado (clustering) Prueba Lineal suma1, 2, 3, etc. a la dispersada original Prueba cuadrática suma 1 2, 2 2, 3 2 etc. a la dispersada original Sin embargo, la prueba lineal asegura que todas las posiciones libres se examinarán (la prueba cuadrática no lo hace) e.g. si el tamaño de la tabla es 16 y la dispersada es 3 se tendría la secuencia: 3, 4, 7, 12, 3, 12, 7, 4 En general, con prueba cudrática, la inserción podría ser imposible si la tabla está más llena que la mitad Necestia un rehash (doblar la tabla y redispersar) 25 Resolución de colisiones: encadenamiento separado Cada posición de la tabla es una lista enlazada Añadir s/s en la lista (por cabecera) Ventajas sobre el direccionamiento abierto: Inserción y borrado más sencillo El tamaño del array no es una limitación (aunque se debe minimizar las colisiones) tamaño de tabla igual al número de s esperadas Desventaja Sobrecarga de memoria si hay pocas s No se necestia cambiar la posición ent. ent. ent. ent. ent. 26 Rehashing: aumentar la tabla Proceso de redispersión (rehashing): Crear una nueva tabla de tamaño doble (ajustando a un número primo) Transferir las s de la tabla vieja a la nueva, recalculando sus nevas posiciones (utilizando la función hash) Cúando se debe hacer rehashing Cuando la tabla está completamente llena Con prueba cuadrática, cuando la tabla está llena a la mitad o la inserción falla Por qué doblar el tamaño? Si n es el número de elementos en la tabla, después de la redispersión habrá n/2 inserciones (si se hizo con la tabla llena) Haciendo el tamaño 2n, se añade un coste constante a cada inserción 27

10 Aplicaciones de las tablas hash Los compiladores usan tablas hash (tabla de símbolos) para mantener al información de las variables declaradas Correctores ortográficos on-line si detectan un error ortográfico (en vez de corregir) se busca en un diccionario almacenado en una tabla hash buscando las palabras alternativas en orden constante Los juegos usan tablas para almacenar posiciones ya visitadas, ahorrando mucho tiempo si se vuelve a encontrar la misma posición Para comprobar si dos elementos son iguales si dos elementos tienen valor hash distinto los elementos son diferentes Almacenado de datos dispersos 28 Tablas hash Vs. otras estructuras Las tablas hash son convenientes cuando hay necesidad de muchas búsquedas en tiempos bajos Las tablas hash no son tan adecuadas si hay muchas inserciones y borrados, o si se necesita recorrer entera en este caso es mejor un AVL Si hay más datos que memoria dispoble, se suele utilizar un árbol-b Las tablas hash tampoco son convenientes si se ejecutan operaciones que requieran que las s estén ordenadas e.g. Encontrar el mínimo (los valores de las s no tienen que mantener el orden) 29 Prestaciones de las tablas hash Para analizar las prestaciones de las tablas hash se necesita considerar las búsquedas satisfactorias y no satisfactorias por separado Direccionamiento abierto El número de pruebas depende del factor de carga (denotado por λ) que representa el ratio entre s presentes en la tabla y posiciones del array Encadenamiento separado El número medio de pruebas para una búsqueda satisfactoria es λ y para una no satisfactoria es 1 + λ/2 30

11 Performance of Hashing (2) Para direccionamiento abierto, el cálculo es más complicado. Los valores típicos son: Factor de carga Búsqueda satisfactoria Prueba lineal Prueba cuadrática Búsqueda no satisfactoria Prueba lineal Prueba cuadrática Indicar que los valores no dependen del tamaño del array o del número de s, sólo depende de su ratio (factor de carga) 31

Hashing (Funciones de Dispersión)

Hashing (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 detalles

Tema 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 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 detalles

Estructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria

Estructura de datos y Algoritmos. Tema III Clasificación en memoria secundaria Estructura de datos y Algoritmos Tema III Clasificación en memoria secundaria 3.1. Clasificación externa basada en mezcla 3.1.1. Mezcla directa. 3.1.2. Mezcla natural. 3.1.3. Mezcla balanceada múltiple.

Más detalles

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados

Más detalles

Tabla de Símbolos. Programación II Margarita Álvarez

Tabla de Símbolos. Programación II Margarita Álvarez Programación II Margarita Álvarez La tabla de símbolos es una estructura global utilizada por distintos módulos del compilador. Es el principal atributo heredado. Almacena todos los nombres declarados

Más detalles

Capítulo 3. Clasificación en Memoria Secundaria

Capítulo 3. Clasificación en Memoria Secundaria Capítulo 3. Clasificación en Memoria Secundaria INTRODUCCIÓN Las memorias secundarias (cintas magnéticas, discos duros, ) se caracterizan en general porque el acceso es secuencial. Es decir, en un instante

Más detalles

Tablas de dispersión (hash tables)

Tablas 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 detalles

Tablas de Dispersión (Hashing Tables)

Tablas de Dispersión (Hashing Tables) Tablas de Dispersión (Hashing Tables) Las tablas de dispersión o hashing tables (en inglés) es una técnica que se utiliza para implementar inserciones, eliminaciones y búsquedas en un tiempo medio constante.

Más detalles

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios

Algoritmos y Estructuras de Datos Curso 04/05. Ejercicios 35. Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas

Más detalles

Es común al crear estructuras de datos y luego trabajar sobre las mismas, tener la necesidad de realizar búsquedas en forma más frecuente que la

Es común al crear estructuras de datos y luego trabajar sobre las mismas, tener la necesidad de realizar búsquedas en forma más frecuente que la Es común al crear estructuras de datos y luego trabajar sobre las mismas, tener la necesidad de realizar búsquedas en forma más frecuente que la necesidad de realizar inserciones. Por ejemplo si tenemos

Más detalles

Algoritmos y Estructuras de Datos Ingeniería en Informática

Algoritmos y Estructuras de Datos Ingeniería en Informática 2.1.Sean A= {1, 2, 3, 7, 8} y B= {3, 4, 5, 7, 9}, mostrar la ejecución y los resultados de las siguientes operaciones, suponiendo una representación con arrays de booleanos y con listas de elementos (ordenadas

Más detalles

Estructuras de datos: Tablas de dispersión

Estructuras 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 detalles

Tablas (Diccionarios). Modelo matemático

Tablas (Diccionarios). Modelo matemático Tablas (Diccionarios). Modelo matemático Asumimos un conjunto de claves C y un conjunto de valores V. Matemáticamente una tabla es una aplicación t : C V. El grafo de dicha función es un conjunto de pares

Más detalles

1. Características de la organización direccionada 2. Tipos de organización direccionada 3. Funciones de Transformación 4. Gestión de desbordamientos

1. Características de la organización direccionada 2. Tipos de organización direccionada 3. Funciones de Transformación 4. Gestión de desbordamientos Tema 3: Organización Direccionada 1. Características de la organización direccionada 2. Tipos de organización direccionada 3. Funciones de Transformación 4. Gestión de desbordamientos Tema 3.1: Organización

Más detalles

ÍNDICE 1. Índice Listas ordenadas Operaciones permitidas Pilas Operaciones permitidas...

ÍNDICE 1. Índice Listas ordenadas Operaciones permitidas Pilas Operaciones permitidas... ÍNDICE 1 Índice Índice 1 1. Introducción 2 2. Estructuras de datos 3 2.1. Consideraciones generales a todas las estructuras de datos......... 3 2.2. Listas...................................... 3 2.2.1.

Más detalles

El TAD tabla y las tablas dispersas (o tablas hash) Lección 19

El TAD tabla y las tablas dispersas (o tablas hash) Lección 19 El TAD tabla y las tablas dispersas (o tablas hash) Lección 19 Concepto de Tabla Una tabla es un conjunto o colección de pares c se denomina clave, y v se denomina valor asociado a la clave c En

Más detalles

Esquema básico de una Tabla de Dispersión

Esquema 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 detalles

Estructuras Dinámicas de datos.

Estructuras Dinámicas de datos. Estructuras Dinámicas de datos. Las estructuras dinámicas de datos son estructuras que crecen a medida que ejecuta un programa. Una estructura dinámica de datos es una colección de elementos llamadas nodos

Más detalles

Alonso Ramirez Manzanares Computación y Algoritmos 03.05

Alonso 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

Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas

Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas Estructuras de Datos y Algoritmos Tema 3: Arrays y listas enlazadas Departamento de Informática Universidad de Valladolid Curso 2011-12 Grado en Ingeniería Informática Grado en Ingeniería Informática de

Más detalles

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores 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 detalles

TEMA 2 Estructuras de datos lineales

TEMA 2 Estructuras de datos lineales TEMA 2 Estructuras de datos lineales 1 Objetivos Conocer la especificación algebraica de las principales estructuras de datos lineales: Lista, pila y cola Conocer diferentes alternativas sobre el diseño

Más detalles

Francisco J. Hernández López

Francisco J. Hernández López Francisco J. Hernández López fcoj23@cimat.mx Contenedores que asocian claves con valores mediante un procedimiento conocido como hash o hashing Clave k A32641 O(1) Índice Clave Valor 0 A12456 Adrián Gordillo

Más detalles

Procesadores de lenguaje Tema 6 La tabla de símbolos

Procesadores 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 detalles

Examen de Estructuras de Datos y Algoritmos. (Modelo 2)

Examen de Estructuras de Datos y Algoritmos. (Modelo 2) Examen de Estructuras de Datos y Algoritmos (Modelo 2) 17 de junio de 2009 1. Se dispone de una tabla hash de tamaño 12 con direccionamiento abierto y sondeo cuadrático. Utilizando como función hash la

Más detalles

Examen de Estructuras de Datos y Algoritmos. (Modelo 1)

Examen de Estructuras de Datos y Algoritmos. (Modelo 1) Examen de Estructuras de Datos y Algoritmos (Modelo 1) 17 de junio de 2009 1. Qué rotación se necesita para transformar el árbol de la figura en un árbol AVL? a) Rotación simple izquierda-izquierda b)

Más detalles

Archivos Indice. Indexación y. Asociación. Conceptos Básicos Indices Ordenados Arboles. Asociación. Docente: Albert A.

Archivos 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 detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 4. Técnicas de Dispersión. Definición y Manejo. FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 4. Técnicas de Dispersión. Definición y Manejo. 1.- Introducción. 2.- Funciones de Dispersión. 3.- Saturación Progresiva. 4.- Empaquetado

Más detalles

localizar de un dato con un acceso directo y en una sola comparación de la llave. HASH

localizar de un dato con un acceso directo y en una sola comparación de la llave. HASH HASH Un conjunto es una colección de objetos, los cuales no necesariamente tienen relación entre sí, como de orden, descendencia, etc.; tampoco están obligados a compartir atributos. En el área computacional,

Más detalles

El nivel Interno. Índice Tema 3

El nivel Interno. Índice Tema 3 El nivel Interno Índice Tema 3 iel nivel Interno...1 Introducción...2 Etapas de acceso a la base de datos...2 Gestor de Disco...3 Gestor de Ficheros...3 Agrupamiento...4 Interactivos...4 Entrearchivos...4

Más detalles

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap)

Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Práctico 4 Árboles balanceados (AVL) Tablas de dispersión (Hash) Colas de prioridad (Heap) Clasificación de ejercicios: (I) Imprescindibles (R) Recomendados (C) Complementarios Árboles balanceados (AVL)

Más detalles

Indexación y Asociación

Indexación y Asociación Bases de Datos Indexación y Asociación Contenidos Conceptos básicos Indices Ordenados Árboles B+ ArbolesB Asociación estática Bases de Datos Indexación y Asociación 2 Conceptos básicos Los Indices se utilizan

Más detalles

SOLUCIÓN EJERCICIOS DE UTILIZACIÓN DE TIPOS ABSTRACTOS DE DATOS

SOLUCIÓN EJERCICIOS DE UTILIZACIÓN DE TIPOS ABSTRACTOS DE DATOS SOLUCIÓN EJERCICIOS DE UTILIZACIÓN DE TIPOS ABSTRACTOS DE DATOS 1. El juego pasiegos vs zombies. (1) Especificar que atributos contendrían las clases Zombie y Pasiego resaltando los invariantes que deben

Más detalles

TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO

TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO TEMA 2. ORGANIZACIONES DE FICHEROS Y ESTRUCTURAS DE ACCESO 1. Introducción 2. Conceptos fundamentales de organizaciones de ficheros 3. Dispositivos de almacenamiento secundario 4. Ficheros desordenados

Más detalles

Análisis y Diseño de Algoritmos Tablas de Hash

Aná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 detalles

Tema 6. Ordenación, búsqueda e intercalación interna

Tema 6. Ordenación, búsqueda e intercalación interna Fundamentos de Programación I Tema 6. Ordenación, búsqueda e intercalación interna Luís Rodríguez Baena (luis.rodriguez@upsam.net) Universidad Pontificia de Salamanca (campus Madrid) Escuela Superior de

Más detalles

TEMA 4 El tipo conjunto

TEMA 4 El tipo conjunto TEMA El tipo conjunto PROGRAMACIÓN Y ESTRUCTURAS DE DATOS Tipo conjunto. Definiciones generales. Diccionario.. Tabla de dispersión.. Trie.. Árboles de búsqueda digitales. Cola de prioridad.. Montículo..

Más detalles

Registros Un campo: Registro:

Registros Un campo: Registro: Agenda 1) 2) registros ordenados registros desordenado Agenda 3) Organización de. 4) desordenado Organización de. Un campo: es el elemento de datos básico. Un campo individual contiene un valor único.

Más detalles

TEMA 3 TRANSFORMACIÓN DE CLAVES (HASHING)

TEMA 3 TRANSFORMACIÓN DE CLAVES (HASHING) TEMA 3 TRANSFORMACIÓN DE CLAVES (HASHING) o como encontrar, con el mínimo esfuerzo, una clave dada dentro de un conjunto de elementos. p-1- OBJETIVOS DE ESTE CAPITULO: Concepto de Hashing (Dispersión).

Más detalles

Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa

Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa Estructura de Datos y de la Información Eduardo Mosqueira Rey Bertha Guijarro Berdiñas Mariano Cabrero Canosa Laboratorio de Investigación y Desarrollo en Inteligencia Artificial Departamento de Computación

Más detalles

Para archivos, existen las siguientes organizaciones:

Para archivos, existen las siguientes organizaciones: 2. ARCHIVOS Entendemos por estructura a la forma cómo están constituidos físicamente los archivos, y organización de archivos a la forma de administración de los archivos, en función de las relaciones

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

Estructuras de datos: Árboles binarios de

Estructuras de datos: Árboles binarios de Estructuras de datos: Árboles binarios de búsqueda, Facultad de Informática Universidad de A Coruña Table of Contents Árboles binarios de búsqueda 1 Árboles binarios de búsqueda 2 Table of Contents Árboles

Más detalles

Estructura de Datos. Árboles Binarios de Búsqueda ABB. Primer Semestre, 2010

Estructura 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 detalles

Bloque III: Estructuras de datos no lineales

Bloque III: Estructuras de datos no lineales Bloque III: Estructuras de datos no lineales ESTRUCTURAS DE DATOS 1 Tema 6: Conjuntos ESTRUCTURAS DE DATOS 2 Conjuntos: contenidos Introducción Especificación algebraica del TAD TipoConjunto Implementaciones

Más detalles

Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el????

Programación. Tema 8: Tablas Hash. Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Programación. Tema : Tablas Hash /Mayo/ Apuntes elaborados por: Eduardo Quevedo, Aaron Asencio y Raquel López Revisado por: Javier Miranda el???? Tema : Tabla Hash Las tabla hash aparece para conseguir

Más detalles

Tema 2. Conjuntos y Diccionarios

Tema 2. Conjuntos y Diccionarios y Diccionarios 2.1. Repaso del TAD Conjunto 2.2. Implementaciones básicas 2.3. El TAD Diccionario 2.4. Las tablas de dispersión 2.5. Relaciones muchos a muchos AED-I 1 2.1. Repaso del TAD conjunto Definiciones

Más detalles

Diseño de Conjuntos y Diccionarios con Hashing

Diseño de Conjuntos y Diccionarios con Hashing Diseño de Conjuntos y Diccionarios con Hashing Representación de Conjuntos y Diccionarios TAD Diccionario(clave, significado) Observadores básicos def?: dicc(clave, significado) bool obtener: clave c dicc(clave,

Más detalles

En las preguntas 1-30 indique la respuesta correcta. e= ninguna de las anteriores

En las preguntas 1-30 indique la respuesta correcta. e= ninguna de las anteriores Estructuras de Información... 1 En las preguntas 1-30 indique la respuesta correcta. e= ninguna de las anteriores 1. Cuál de las siguientes afirmaciones es falsa: a. Un nodo es un objeto, un link es un

Más detalles

Análisis del caso promedio El plan:

Análisis del caso promedio El plan: Análisis del caso promedio El plan: Probabilidad Análisis probabilista Árboles binarios de búsqueda construidos aleatoriamente Tries, árboles digitales de búsqueda y Patricia Listas skip Árboles aleatorizados

Más detalles

Estructura de Datos y de la Información

Estructura de Datos y de la Información Universidad Rey Juan Carlos Curso 2009/10 Ingeniería Técnica en Informática de Gestión Estructura de Datos y de la Información Examen Final Junio 2010 Fecha: 24-6-2010 Soluciones Ejercicio 1. (Puntuación

Más detalles

Profesor: José Miguel Rubio L.

Profesor: José Miguel Rubio L. Profesor: José Miguel Rubio L. Magíster en Ingeniería Informática Ingeniero Civil en Informática Licenciado en Ciencias de la Ingeniería Técnico en Programación Oficina: 3-20 e-mail 1: jose.rubio.l@ucv.cl

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA 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 detalles

Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom

Tema 05: Tablas hash. M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Tema 05: Tablas hash M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Tablas hash o de dispersión Función

Más detalles

4. Pilas ESTRUCTURAS DE DATOS 1

4. Pilas ESTRUCTURAS DE DATOS 1 4. Pilas Una Pila es una colección de elementos homogéneos dispuestos en orden tal que se recuperan en orden inverso a como se introdujeron. La extracción e inserción de elementos en la Pila se realiza

Más detalles

Tema 04: TAD Lista. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Tema 04: TAD Lista. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom Tema 04: TAD Lista M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido TAD Lista Descripción del TAD Lista

Más detalles

TRABAJO PRÁCTICO N 7 Mapeos, diccionarios, arboles binarios de búsqueda y tablas de dispersión

TRABAJO PRÁCTICO N 7 Mapeos, diccionarios, arboles binarios de búsqueda y tablas de dispersión ESTRUCTURAS DE DATOS TRABAJO PRÁCTICO N 7 Mapeos, diccionarios, arboles binarios de búsqueda y tablas de dispersión Departamento de Ciencias e Ingeniería de la Computación - U.N.S. Segundo cuatrimestre

Más detalles

Tema 10: Árbol binario de búsqueda

Tema 10: Árbol binario de búsqueda Tema 10: Árbol binario de búsqueda M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Árbol binario de

Más detalles

ESTRUCTURAS DE ARBOLES Y HASHING

ESTRUCTURAS DE ARBOLES Y HASHING Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Departamento de Computación Bases de Datos Integrantes: Herrera, Manuel C.I. 17.171.090 Balladares, Edgar C.I. 17.631.176 ESTRUCTURAS

Más detalles

Estructura de datos y de la información Boletín de problemas - Tema 10

Estructura de datos y de la información Boletín de problemas - Tema 10 Estructura de datos y de la información Boletín de problemas - Tema 10 1. En el caso de que sea posible, dar un ejemplo de los siguientes puntos. Si no, explicar por qué no lo es. Considerar un valor genérico

Más detalles

Estructuras de Datos II

Estructuras de Datos II Estructuras de Datos II Segundo Parcial Los árboles B+ son estructuras de datos jerárquicas que se utilizan para almacenar y manipular datos ordenados de forma muy eficiente, ya que por su estructura y

Más detalles

Tema 1. Ordenación, búsqueda e intercalación interna

Tema 1. Ordenación, búsqueda e intercalación interna Fundamentos de Programación II Tema 1. Ordenación, búsqueda e intercalación interna Luis Rodríguez Baena (luis.rodriguez@upsam.es) Universidad Pontificia de Salamanca Escuela Superior de Ingeniería y Arquitectura

Más detalles

Almacenamiento y Recuperación de la Información

Almacenamiento y Recuperación de la Información Almacenamiento y Recuperación de la Información Técnicas de Indexación Indices Dinámicos do Semestre 5 Wenceslao Palma M. www.inf.utfsm.cl/~wpalma/ari Indices Dinámicos Indices tipo

Más detalles

Abelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada.

Abelardo Pardo. Iria Estévez Ayres. Damaris Fuentes Lorenzo. Pablo Basanta Val. Pedro J. Muñoz Merino. Hugo A. Parada. Arquitectura de sistemas Abelardo Pardo University of Sydney School of Electrical and Information Engineering NSW, 2006, Australia Autor principal del curso de 2009 a 2012 Iria Estévez Ayres Damaris Fuentes

Más detalles

Estructuras de Datos. 8.6 Árboles B. Supongamos que los nodos de un árbol deben ser guardados en un medio de almacenamiento secundario (disco).

Estructuras de Datos. 8.6 Árboles B. Supongamos que los nodos de un árbol deben ser guardados en un medio de almacenamiento secundario (disco). 132 El grado de ocupación de una tabla hash se determina mediante el factor de carga, que es la fracción ocupada de la tabla y es un número que está entre 0 y 1 si está vacía o llena respectivamente. Ejercicio:

Más detalles

Programación TADs Colecciones Conjuntos, Diccionarios y Tablas

Programación TADs Colecciones Conjuntos, Diccionarios y Tablas Programación 2 8 - TADs Colecciones Conjuntos, Diccionarios y Tablas 1 El TAD SET (Conjunto) En el diseño de algoritmos, la noción de conjunto es usada como base para la formulación de tipos de datos abstractos

Más detalles

Estructuras de Datos y Algoritmos

Estructuras de Datos y Algoritmos Estructuras de Datos y Algoritmos Prof. Dr. P. Javier Herrera Contenido 1 Conceptos básicos de grafos y su especificación algebraica 2 Algoritmos de ordenación 3 Algoritmos de búsqueda 2 1. Grafos Estructuras

Más detalles

ESTRUCTURAS DE DATOS Y ALGORITMOS

ESTRUCTURAS DE DATOS Y ALGORITMOS ESTRUCTURAS DE DATOS Y ALGORITMOS CURSO 2009 PRÁCTICO 8 Nota: al igual que en los prácticos 6 y 7, en los problemas que siguen se usarán los tipos lista y árbol binario, como tipos abstractos, cada uno

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

Laboratorio de Estructuras de Datos II

Laboratorio de Estructuras de Datos II Laboratorio de Estructuras de Datos II Segundo examen parcial Fecha límite de entrega: Jueves 19 de noviembre de 2009, 3:59:59 p.m. Los árboles B son estructuras de datos jerárquicas que se utilizan para

Más detalles

Especialista en Abstracción y Estructura de datos en C++

Especialista en Abstracción y Estructura de datos en C++ Especialista en Abstracción y Estructura de datos en C++ titulación de formación continua bonificada expedida por el instituto europeo de estudios empresariales Especialista en Abstracción y Estructura

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 3. Estructuras de Almacenamiento. Básicas. Definición y Manejo.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 3. Estructuras de Almacenamiento. Básicas. Definición y Manejo. FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 3. Estructuras de Almacenamiento Básicas. Definición y Manejo. 1.- Búsqueda de Información. Definición de Clave. 2.- Definición y Manejo

Más detalles

Tema 10. Indexación y asociación

Tema 10. Indexación y asociación Tema 10. Indexación y asociación Juan Ignacio Rodríguez de León Resumen Conceptos básicos. Índices ordenados. Archivos de índices de árbol B+. Archivos de índices de árbol B. Asociación estática. Asociación

Más detalles

ANÁLISIS SEMÁNTICO LA TABLA DE SÍMBOLOS

ANÁLISIS SEMÁNTICO LA TABLA DE SÍMBOLOS Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Programación de sistemas Listas enlazadas

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

Más detalles

ESTRUCTURAS DE DATOS TEORÍA 2016/2017 PILAS

ESTRUCTURAS DE DATOS TEORÍA 2016/2017 PILAS ESTRUCTURAS DE DATOS TEORÍA 2016/2017 PILAS 1 PILAS Una pila P es una estructura lineal tal que las inserciones, las consultas y las eliminaciones solo se permiten en un único punto. La pila puede no tener

Más detalles

Indexación con lista enlazada

Indexación con lista enlazada Indexación con lista enlazada Estructura de datos Roberto Maestre Martínez Diseño y arquitectura del sistema La nomenclatura utilizada es la siguiente. cvar Indica nombre de clase Var ovar Indica un objeto

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

Estructura de Datos. Índice

Estructura de Datos. Índice TEMA 5. ÁRBOLES (I) 1 Índice 1. Concepto de árbol 2. Árboles binarios 1. Especificación informal del TAD árbol binario 2. Implementación del TAD árbol binario 3. Recorrido de un árbol binario 4. Árboles

Más detalles

PRUEBA EVALUABLE ESTRUCTURAS DE DATOS PARTE I

PRUEBA EVALUABLE ESTRUCTURAS DE DATOS PARTE I PRUEBA EVALUABLE ESTRUCTURAS DE DATOS PARTE I 1. Explicar por qué la complejidad algorítmica se mide en órdenes (0.5 puntos). Un orden representa el conjunto de funciones que poseen un mismo ritmo de crecimiento.

Más detalles

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 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 detalles

Objetivos. Conocer y saber utilizar diferentes tipos de datos. estructurados: cómo se definen. cómo están organizadas sus componentes

Objetivos. Conocer y saber utilizar diferentes tipos de datos. estructurados: cómo se definen. cómo están organizadas sus componentes Objetivos Conocer y saber utilizar diferentes tipos de datos estructurados: cómo se definen cómo están organizadas sus componentes cómo se accede a ellas y sus operaciones y algoritmos básicos Tema: Estructuras

Más detalles

INDICE. Prólogo de la Segunda Edición

INDICE. Prólogo de la Segunda Edición INDICE Prólogo de la Segunda Edición XIII Capitulo 1. Algoritmos y Programas 1 1.1. Los sistemas de procesamiento de la información 2 1.2. Concepto de algoritmo 4 1.2.1. Características de los algoritmos

Más detalles

Tema 2. Conjuntos y Diccionarios.

Tema 2. Conjuntos y Diccionarios. Programa de teoría Parte I. Estructuras de Datos.. Abstracciones y especificaciones. 2. Conjuntos y diccionarios. 3. Representación de conjuntos mediante árboles. 4. Grafos. Parte II. Algorítmica.. Análisis

Más detalles

Algoritmos y Estructuras de Datos I Ejercicios. Tema 3. Árboles

Algoritmos y Estructuras de Datos I Ejercicios. Tema 3. Árboles 3.1. Explicar por qué es necesario, en la representación de conjuntos mediante árboles trie, utilizar una marca de fin de palabra $ (puesto que podríamos hacer que las palabras del conjunto se correspondieran

Más detalles

TEMA 7. ARRAYS (LISTAS Y TABLAS).

TEMA 7. ARRAYS (LISTAS Y TABLAS). TEMA 7. ARRAYS (LISTAS Y TABLAS). En capítulos anteriores se han descrito las características de los tipos de datos básicos o simples (carácter, entero y coma flotante). Asimismo, se ha aprendido a definir

Más detalles

Programación de sistemas

Programación de sistemas Programación de sistemas Listas enlazadas Julio Villena Román MATERIALES BASADOS EN EL TRABAJO DE DIFERENTES AUTORES: Carlos Delgado Kloos, Jesús Arias Fisteus, Carlos Alario Hoyos

Más detalles

Árboles n-arios de búsqueda. Lección 16

Árboles n-arios de búsqueda. Lección 16 Árboles n-arios de búsqueda Lección 16 Definiciones Los árboles n-arios de búsqueda (árboles de búsqueda múltiples o multicamino) son árboles de grado n definidos de la forma: si el árbol A es vacío, entonces

Más detalles

DISEÑO FÍSICO DE UNA BASE DE DATOS EDWIN FERNANDO PACHECO FIGUEROA LICENCIATURA EN INFORMÁTICA UNIVERSIDAD DE NARIÑO

DISEÑO FÍSICO DE UNA BASE DE DATOS EDWIN FERNANDO PACHECO FIGUEROA LICENCIATURA EN INFORMÁTICA UNIVERSIDAD DE NARIÑO DISEÑO FÍSICO DE UNA BASE DE DATOS QUÉ ES UN DISEÑO FISICO DE BASE DE DATOS. "Diseño físico de la base de datos" es el proceso de selección de una estructura física para una estructura lógica dada. El

Más detalles

Examen de Estructuras de Datos y Algoritmos (Ingeniería Informática)

Examen 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 detalles

White paper Hashing. Autor: Ramix (Ramiro A. Gómez) Sitio web: Fecha: 6 FEB Indice

White paper Hashing. Autor: Ramix (Ramiro A. Gómez) Sitio web:  Fecha: 6 FEB Indice White paper Hashing Autor: Ramix (Ramiro A. Gómez) Sitio web: www.peiper.com.ar Fecha: 6 FEB 2008 Indice Introducción... 1 Qué es el hashing?... 1 Funciones hash... 2 Colisiones... 3 Usos del hashing...

Más detalles

EJERCICIO 2 (3 PUNTOS) A) Sea el árbol binario AVL de la figura siguiente: B) Dada la estructura de la figura siguiente:

EJERCICIO 2 (3 PUNTOS) A) Sea el árbol binario AVL de la figura siguiente: B) Dada la estructura de la figura siguiente: ASIGNATURA TITULACIÓN APELLIDOS ESTRUCTURA DE DATOS Y DE LA INFORMACIÓN EJERCICIO 1 (3 PUNTOS) GRUPO CURSO CONVOCATORIA NOMBRE 23 / 24 EXTRAORDINARIA- SEPTIEMBRE CALIFICACIÓN Dado el tipo abstracto de

Más detalles

Segundo Parcial de Programación 2 7 de junio de 2017

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

Más detalles

Tema 09: TAD Árbol binario

Tema 09: TAD Árbol binario Tema 09: TAD Árbol binario M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom (Prof. Edgardo A. Franco) 1 Contenido Introducción El árbol binario

Más detalles

Clase adicional 9. Listas enlazadas. Temas. Listas enlazadas Árboles Problemas de la clase adicional Ejercicios de diseño

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

Más detalles

ESTRUCTURA DE DATOS Y ALGORITMOS Titulación: Ingeniero Técnico en Informática de Gestión Curso: 2º Nombre y apellidos: Nota:

ESTRUCTURA 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 detalles

Algoritmos y Programación II Curso 2006

Algoritmos y Programación II Curso 2006 Arboles: Un árbol es una colección de elementos, llamados nodos, uno de los cuales se distingue con el nombre de raíz. Los nodos mantienen entre ellos una relación que define una estructura jerárquica

Más detalles

Otras estructuras de datos

Otras estructuras de datos Otras estructuras de datos Programación de Sistemas de Telecomunicación Informática II GSyC Universidad Rey Juan Carlos Noviembre 2016 GSyC - 2016 Otras estructuras de datos 1 c 2016 Grupo de Sistemas

Más detalles

Tablas de Dispersión

Tablas 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 detalles