B2 Tema 3 Estructura de datos Flashcards

1
Q

¿Cuantas columnas tiene la tabla HASH?

A

Dos. Que son LLAVE Y VALOR.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Qué es una tabla Hash?

A
  • También llamada, Mapa Hash.
  • Es una ESTRUCTURA DE DATOS que implementa el TAD llamado Diccionario y que soporta de manera eficiente la operación de búsqueda.
  • Se usan cuando hay que almacenar gran cantidad de información y también necesitamos acceder a ella y buscar un dato.
  • El tiempo promedio de búsqueda es de O(1).
  • Su estructura es clave=valor.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Como se introducen datos en la tabla hash?

A
  • Se aplica una FUNCIÓN DE DISPERSIÓN o HASH, al valor que queremos introducir
  • El resultado es un índice/ubicación válido para la tabla.
  • El elemento se almacena en la posición de la tabla obtenido en el paso anterior.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué es una COLISIÓN en Hash?

A

Cuando a dos objetos se les asigna la misma posición en la tabla, como resultado de aplicar la función resumen (hash)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qué dos técnicas hay para resolución de COLISIONES?

A

ENCADENAMIENTO SEPARADO o HASHING ABIERTO o DIRECCIONAMIENTO CERRADO, Agrega listas de objetos en las ubicaciones donde hay colisiones. Lo llamamos DIRECCIONAMIENTO CERRADO, por que vamos a la ubicación que le toca y no nos movemos de ahí.

DIRECCIONAMIENTO ABIERTO o HASHING CERRADO. En este caso sí que nos movemos de ubicación, hasta encontrar una libre. Esto se hace por medio de sondeos, que pueden ser, LINEALES, CUADRÁTICOS y de DOBLE HASHEO.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿En qué consiste el Direccionamiento cerrado o hasing abierto (Encadenamiento separado)?

A

Decimos DIRECCIONAMIENTO CERRADO, por que no nos movemos de la ubicación que le ha tocado. Hay que meter el dato ahí por cojones.
Cuando varios elementos, comparten la misma ubicación, se genera una lista en esa ubicación y los elementos se van colocando en esa lista.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Di algunos Tipos Abstractos de Datos y sus implementaciones..

A
  • Listas→Array, Lista enlazada
  • Pilas o Stack→ Array, Lista enlazada
  • Colas o Queue/Double-ended queue→ Array, Lista [doble] enlazada
  • Grafos→Matriz, Array de listas enlazadas
  • Árboles
  • Diccionario→ Tablas HASH
  • Set/Multiset, Árbol rojo-negro, Tabla Hash
  • Priority Queue→ Montículo
  • Associative Array→ Tabla Hash
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué algoritmo usamos para las Stacks o pilas?

A

LIFO

Es como en las pilas de platos de la cocina. El último en entrar, es el primero en salir.
Solo un extremo de la pila es el que se modifica siempre y se llama “Tope”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué primitivas podemos usar para trabajar con las Pilas o Stacks?

A
  • Pop, para eliminar un elemento del Tope de la pila.
  • Peek, lee el último elemento insertado, sin borrarlo, es como un SELECT.
  • Push, para añadir un elemento al Tope de la pila.
  • IsEmpty, antes de aplicar POP, se usa Isempty, para comprobar que no esté vacía la pila.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué algoritmo usamos para las Colas o Queue?

A

FIFO

El primer elemento en entrar, es el primero en salir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué primitivas podemos usar en las Colas o Queue?

A
  • Enqueue, inserta por un extremo. El extremo donde se añade un elemento, se llama, BACK, TAIL o REAR.
  • Dequeue, extrae por el extremo opuesto. El extremo por el que se saca un elemento de la cola, se llama, HEAD o FRONT.
  • Isempty, comprueba si la cola está vacia.
  • IsFull, comprueba si está llena.
  • Peek, obtiene el valor de la cabeza de la cola, sin borrarlo.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué son los Monticulos?

A
  • Son estructuras de datos, de tipo árbol, que cumple con la propiedad del montículo, como MAX-HEAP o MIN-HEAP.
  • Son conjuntos de datos ORDENADOS.
  • Se usan para COLAS DE PRIORIDAD
  • Tiene una buena complejidad, rondando el O (Log (n))
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Cual es la característica de un montículo máximo?

A

Que la raíz es la que tiene el mayor valor, por encima de sus hijos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Cual es la característica de los Montículos Mínimos?

A

El valor de la raíz es siempre el de menor valor del árbol y de sus hijos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Con qué otro nombre se conoce a los Montículos?

A

Heap.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Para qué son muy útiles los Montículos de máximos ó mínimos?

A

Para Colas de Prioridad

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

En un Árbol ¿Cual es el grado de un nodo?

A

Es el número de hijos DIRECTOS que tiene.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

En un Árbol ¿Qué es la profundidad de un nodo?

A

Es el número de arístas que hay desde el nodo a la raíz.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿Qué profundidad tiene el nodo Raíz?

A

Profundidad 0.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

En un Árbol, ¿Cual es la altura de un nodo?

A

Se mide del nodo hacia abajo.
Es la trayectoria más larga desde ese nodo hasta la primera hoja.
La altura de un nodo hoja es igual a 0.
Se cuentan las arístas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

En un Árbol ¿Qué es el factor de equilibrio?

A

Es la diferencia de altura entre el subárbol izquierdo y el derecho.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

¿Cual es la altura de un Árbol completo?

A

Es la altura de su nodo raíz.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

En un Árbol, ¿Qué es una hoja?

A

Un nodo sin hijos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Recorrido en profundidad de un Árbol.

PREORDEN (RID)

A

1º La Raíz

2º Subárbol izquierdo

3º Raíz del subárbol izquierdo

4º Si ya no hay subarbol a la izquierda, vamos al derecho.

5º Raíz del derecho

etc…

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Recorrido en profundidad de un árbol:

INORDEN (IRD)

A

Es más o menos como leer, la primera hoja de la izquierda y luego raíz, hoja, raíz, hoja, raíz, y así.

1º Subárbol Izquierdo

2º Raíz

3º Subárbol Derecho

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

Recorrido en profundidad de un árbol:

POSTORDEN (IDR)

A

1º Subárbol Izquierdo

2º Subárbol Derecho

3º Raíz

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

¿Qué es un árbol binario?

A

Cada nodo tiene como máximo 2 hijos.

28
Q

¿Qué es un árbol binario de búsqueda?

A

Aquel en el que los valores menores que la raíz se colocan a la izquierda y los mayores a la derecha.

Es una condición que tienen que cumplir. Si no, no es un árbol binario.

29
Q

¿Que nivel tiene un árbol vacío?

A

0

30
Q

¿Cual es el peso de un árbol?

A

Es la suma de todos sus nodos, sin importar el orden.

31
Q

¿Qué es el órden de un árbol?

A

Es el límite máximo de hijos que puede tener un nodo.

32
Q

¿Qué es el Grado de un árbol?

A

El número de hijos máximo que tiene el nodo con más hijos.
El límite lo pone el ORDEN, que establece el máximo de hijos que puede tener un nodo.

33
Q

¿Qué es un árbol n-ario?

A

Es aquel en el que n marca el número máximo de hijos por nodo, o el Órden.

34
Q

¿Qué es un árbol binario lleno?

A

Es aquel en el que TODOS los nodos tienen CERO O 2 HIJOS con excepción de la raíz.

35
Q

¿Qué es un Árbol Binario Perfecto?

A

Aquel en el que todas las hojas están al mismo nivel.

36
Q

En un Árbol ¿Qué son las búsquedas “no informadas”?

A

Se hace la búsqueda por el árbol, a ciegas, sin saber donde buscar.
Son las que denominamos, búsqueda en PROFUNDIDAD y búsqueda en ANCHURA.

37
Q

Tipos de búsquedas no informadas:

A
  • Búsqueda en profundidad
  • Búsqueda en anchura
38
Q

¿Como es la búsqueda en Amplitud?

A

Se busca de forma lineal, de izquierda a derecha, pasando de un nivel, al siguiente y leyendo de izquierda a derecha. No es una función recursiva.

39
Q

¿Como se calcula el nivel de un nodo?

A

Se calcula contando cuantos nodos hay sobre él, hasta llegar a la raíz, +1.

40
Q

¿Como se resuelve el Direccionamiento Abierto o Hashing Cerrado?

A
  1. Sondeo Lineal: Si un elemento tiene asignada una ubicación ocupada, se busca en la siguiente posición, hasta que encuentra una libre.
  2. Sondeo Cuadrático: Igual que el lineal, pero en vez de avanzar 1 espacio, avanzamos espacios de forma exponencial.
  3. Doble Hasheo: El intervalo entre intentos es constante, pero calculado por otra función hash.
41
Q

¿Como se resuelve el Direccionamiento Cerrado o Hashing Abierto?

A

Direccionamiento Cetrrado, nos obliga a usar la ubicación que no sale. En ella, se colocan los valores, formando una lista.

42
Q

Definición de TAD (Tipo Abstracto de Datos):

A
  • Modelo matemático para definir tipos de datos
  • Al comportamiento se le llama PRIMITIVAS
  • Es independiente del lenguaje de programación.
  • Es una colección de valores y de operaciones.
  • Los TAD, se implementan en Estructuras de datos.
43
Q

¿Qué son los Montículos binarios?

A

Son un caso particular de Montículos, basado en un Árbol binario.

44
Q

Dí dos tipos de árboles binarios:

A
  • Árbol binario de busqueda
  • AVL (EQUILIBRADOS. por ejm: Árbol de Fibonacci)
45
Q

Tipos de árboles equilibrados(auto-balanceable)

A
  • AVL(rotaciones)
  • AA
  • Rojo-Negro
  • Splay
46
Q

Características del árbol rojo-negro:

A
  1. Cada nodo puede ser o rojo o negro.
  2. La raíz es negra.
  3. Todas las hojas son negras.
  4. Todo nodo rojo debe tener dos nodos hijos negros.
  5. Cada camino desde un nodo dado a sus hojas descendientes contiene el mismo número de nodos negros.
47
Q

Datos sobre los árboles B

A
  • Cada nodo puede tener más de dos hijos.
  • Mantiene los datos ordenados.
  • Es un tipo de AVL.
48
Q

Tipos de acceso a los archivos o de almacenamiento de los datos.

A
  • SECUENCIAL: Un ejemplo es una cinta magnética. La búsqueda es desde el inicio. El borrado es lógico, es decir, que se pone una marca en la info que queremos marcar como borrada. Para acceder a un dato hay que pasar por todos los que hay antes, osea, n-1
  • DIRECTO: También llamado ALEATORIO, tiene la capacidad de acceder a un dato concreto de forma arbitraria. Hay dos maneras de acceder al archivo. Por clave de registros y por función (clave)
  • INDEXADO: Separa la zona de datos, de la zona de índices. Así podemos buscar en el índice.
    Hay un caso Híbrido, que usa SECUENCIAL e INDEXADO, que es ISAM. Una implementación de este sería MyISAM, de MySql.
    SECUENCIAL es el OPUESTO a DIRECTO
49
Q

Tipos de ordenación de ficheros (Externa )

A
  • Mezcla directa, se van ordenando de 2 en 2 en dos arreglos y luego 4 y así hasta ordenar todos.
  • Mezcla natural, se van ordenando, pero aprovechando que ya hay algunos elementos ordenados.
50
Q

Ventajas del encadenamiento separado

A

1- El borrado es más simple

2- El crecimiento de la tabla, se puede posponer, ya que el rendimiento disminuye más lentamente, aún con las tablas llenas.

51
Q

¿Que primitivas podemos usar en las Listas?

A
  • Is Empty
  • insertarDelante
  • insertarDetrás
  • head
  • tail
52
Q

Orden de eficiencia de los algoritmos. De más a menos:

A
  • O(1)
  • O (log n)
  • O (n)
  • O (n log n)
  • O (n^2)
53
Q

¿Que tiempo de búsqueda tiene una tabla HASH?

A

O(1)

54
Q

¿Qué son los GRAFOS?

A

Son un conjunto de objetos llamados, Vertices o Nodos, unidos por Arístas, que representan relaciones binarias entre los nodos.

55
Q

¿Qué son los GRAFOS dirigidos o DIGRAFOS?

A

Son aquellos cuyas aristas tienen un sentido definido.
A diferencia de los No Dirigidos.

56
Q

¿Qué es un GRAFO CONEXO?

A

Aquel en el que todos los Vertices están conectados por caminos.

57
Q

¿Qué es un GRAFO MULTIGRAFO?

A

Dos nodos pueden estar conectados por más de una arista.

58
Q

¿Qué es un GRAFO ETIQUETADO o PONDERADO?

A

Aquel cuyas arístas tienen un valor o peso asociado.

59
Q

¿Qué es el ORDEN de un grafo?

A

El número de VÉRTICES o NODOS.

60
Q

¿Qué es el GRADO de un grafo?

A

El número de arístas que inciden en el nodo.

61
Q

Algoritmos

A
  • PRIM, árbol de recubrimiento mínimo (Grafos)
  • KRUSKAL, árbol de recubrimiento mínimo (Grafos)
  • DIJKSTRA, camino mínimo (Enrutamiento)
  • BELLMAN-FORD, camino mínimo (Enrutamiento)
  • FORD-FULKERSON, caminos para minimizar el flujo
  • TARJAN, grupos conexos
  • FLOYD-WARSHALL, camino mínimo entre dos vertices
62
Q

Ventajas de ISAM

A

Sus indices son pequeños.

63
Q

Datos sobre ISAM:

A

Es un sistema híbrido (Acceso Secuencial e Indexado) para almacenar información.
Usa tablas HASH, a modo de índices, que contienen Punteros.
La implementación más conocida es MyISAM, de SQL.

64
Q

¿Qué es un árbol de recubrimiento mínimo?

A

En un grafo, CONEXO y NO DIRIGIDO, ES AQUEL SUBÁRBOL QUE CONECTA TODOS LOS NODOS Y QUE PESA LO MISMO O MENOS QUE LOS OTROS SUBÁRBOLES.

65
Q

Rendimiento de los sondeos en el DIRECCIONAMIENTO ABIERTO:

A
  • LINEAL –> Mejor rendimiento en caché–> Genera AGLOMERAMIENTO
  • CUADRÁTICO –> Intermedio
  • DOBLE HASHEO –>Peor Rendimiento–>Elimina el AGLOMERAMIENTO.