Documente Academic
Documente Profesional
Documente Cultură
DEFINICIONES Y REPRESENTACIONES. NOMENCLATURA SOBRE RBOLES. DECLARACIN Y REPRESENTACIN DE UN RBOL BINARIO. RECORRIDOS SOBRE RBOLES BINARIOS. CONSTRUCCIN DE UN RBOL BINARIO. RBOL BINARIO DE BSQUEDA. RBOLES 2-3-4. RBOLES ROJO NEGRO. RBOLES AVL. RBOLES MULTIWAY. RBOLES B. RBOLES B+. RBOLES BINARIOS HILVANADOS.
RBOLES GENERALES Y BINARIOS 1
DEFINICIONES Y REPRESENTACIONES
DEFINICIONES Y REPRESENTACIONES
UN BOSQUE ES UN GRAFO NO DIRIGIDO ACCLICO. UN RBOL ES UNA ESTRUCTURA DE DATOS, QUE PUEDE DEFINIRSE DE FORMA RECURSIVA COMO: UNA ESTRUCTURA VACA O. UN ELEMENTO O CLAVE DE INFORMACIN (NODO) MS UN NMERO FINITO DE ESTRUCTURAS TIPO RBOL, DISJUNTOS, LLAMADOS SUBRBOLES: SI DICHO NMERO DE ESTRUCTURAS ES INFERIOR O IGUAL A 2, SE TIENE UN RBOL BINARIO. UN RBOL ES UNA ESTRUCTURA NO SECUENCIAL. UN RBOL ES UN TIPO DE GRAFO ACCLICO, CONEXO Y NO DIRIGIDO: ES UN GRAFO NO DIRIGIDO EN EL QUE EXISTE EXACTAMENTE UN CAMINO ENTRE TODO PAR DE NODOS. ESTA DEFINICIN PERMITE IMPLEMENTAR UN RBOL Y SUS OPERACIONES EMPLEANDO LAS REPRESENTACIONES QUE SE UTILIZAN PARA LOS GRAFOS.
RBOLES GENERALES Y BINARIOS 3
DEFINICIONES Y REPRESENTACIONES
LAS PRINCIPALES FORMAS DE REPRESENTACIN SON: MEDIANTE UN GRAFO. MEDIANTE UN DIAGRAMA ENCOLUMNADO: a b d c e f UNA ESTRUCTURA DE DATOS MUY UTILIZADA SON LOS RBOLES BINARIOS: ESTOS RBOLES TIENEN 0, 1 O 2 DESCENDIENTES COMO MXIMO. EL RBOL DE LA FIGURA ES UN EJEMPLO VLIDO DE RBOL BINARIO.
DEFINICIONES Y REPRESENTACIONES
10
11
12
14
15
16
17
18
19
20
21
22
23
24
25
26
29
30
PARTIENDO DE LOS RECORRIDOS PREORDEN E INORDEN DEL RBOL DE LA FIGURA EJEMPLO PUEDE DETERMINARSE: QUE LA RAZ ES EL PRIMER ELEMENTO DEL RECORRIDO EN PREORDEN. ESE ELEMENTO SE BUSCA EN EL ARRAY INORDEN. LOS ELEMENTOS EN EL ARRAY INORDEN ENTRE IZQ Y LA RAZ FORMAN EL SUBRBOL IZQUIERDO. LOS ELEMENTOS ENTRE DER Y LA RAZ FORMAN EL SUBRBOL DERECHO. POR TANTO SE TIENE EL RBOL SIGUIENTE:
31
32
33
34
35
36
37
38
39
41
42
43
45
LA CODIFICACIN EN C ES LA SIGUIENTE, DONDE EL PROCEDIMIENTO SUSTITUIR ES EL QUE DESCIENDE POR EL RBOL CUANDO SE DA EL CASO DEL NODO CON DESCENCIENTES POR AMBAS RAMAS: void borrar(tarbol **a, int elem) { void sustituir(tarbol **a, tarbol **aux); tarbol *aux; if (*a == NULL) /* no existe la clave */ return; if ((*a)->clave < elem) borrar(&(*a)->der, elem); else if ((*a)->clave > elem) borrar(&(*a)->izq, elem); else if ((*a)->clave == elem) { aux = *a; if ((*a)->izq == NULL) *a = (*a)->der; else if ((*a)->der == NULL) *a = (*a)->izq; else sustituir(&(*a)->izq, &aux); /* se sustituye por la mayor de las menores */ free(aux); } RBOLES GENERALES Y BINARIOS 46
RBOLES 2-3-4
47
48
RBOLES 2-3-4
COMO UNA FORMA DE ELIMINAR LAS BSQUEDAS EXHAUSTIVAS DE LOS RBOLES BINARIOS EXISTEN LOS RBOLES 2-3-4. ESTOS SON RBOLES EN CUYOS NODOS SE PERMITE TENER MS DE UNA CLAVE AL MISMO TIEMPO. LOS RBOLES BINARIOS TIENEN MXIMO 2 HIJOS (DERECHO E IZQUIERDO). SI SE LE PERMITE AL NODO TENER 2 VALORES, ESTE PODR TENER 3 LIGAS A SUBRBOLES Y UNO CON 3 VALORES PODR TENER 4 LIGAS. UN RBOL CON ESTAS CARACTERSTICAS PUEDE CONTENER ENTONCES NODOS CON 2, 3 O 4 LIGAS, DE AH QUE SE LES LLAMA RBOLES 2-3-4. EN LOS RBOLES 2-3-4 TODOS LOS SUBRBOLES TIENEN LA MISMA ALTURA Y ESTN SIEMPRE BALANCEADOS. ESTOS RBOLES SON MUY ATRACTIVOS PARA EL ALMACENAMIENTO Y RECUPERACIN DE CLAVES, SIN EMBARGO SON UN TANTO COMPLICADOS DE IMPLEMENTAR.
RBOLES 2-3-4
LOS RBOLES 2-3 SON UN TIPO DE RBOL BALANCEADO POR ALTURA (HEIGHT BALANCED) EN DONDE TODOS LOS NODOS NOTERMINALES TIENEN 2 3 DECENDIENTES Y TODOS LOS NODOS HOJA TIENEN LA MISMA LONGITUD (PATH LENGTH) O DISTANCIA DESDE LA RAZ. EN ESTOS RBOLES SLO LAS HOJAS CONTIENEN LA INFORMACIN (VALORES). LOS NODOS NO-TERMINAMES CONTIENEN INDICADORES QUE CONSTAN DE 2 VALORES DE LOS CUALES EL IZQUIERDO ES EL MXIMO DEL SUBRBOL IZQUIERDO Y EL SEGUNDO VALOR ES EL VALOR MXIMO DEL SUBRBOL CENTRAL.
49
50
RBOLES 2-3-4
RBOL 2-3-4
51
52
53
54
55
56
RBOLES AVL
RBOLES AVL
LA ESTRUCTURA DE DATOS MS VIEJA Y MEJOR CONOCIDA PARA RBOLES BALANCEADOS ES EL RBOL AVL. SU PROPIEDAD ES QUE LA ALTURA DE LOS SUBRBOLES DE CADA NODO DIFIERE EN NO MS DE 1. PARA MANTENERLO BALANCEADO ES NECESARIO SABER LA ALTURA O LA DIFERENCIA EN ALTURAS DE TODOS LOS SUBRBOLES: SE DEBE TENER QUE GUARDAR INFORMACIN ADICIONAL EN CADA NODO: UN CONTADOR DE LA DIFERENCIA ENTRE LAS ALTURAS DE SUS DOS SUBRBOLES. LOS RBOLES AVL FUERON NOMBRADOS POR SUS DESARROLLADORES ADELSON - VELSKII Y LANDIS. PROBABLEMENTE LA PRINCIPAL CARACTERSTICA DE LOS RBOLES AVL ES SU EXELENTE TIEMPO DE EJECUCIN PARA LAS DIFERENTES OPERACIONES (BSQUEDAS, ALTAS Y BAJAS). EN LAS SIGUIENTES DOS FIGURAS LA PRIMERA ES UN RBOL AVL Y LA SEGUNDA NO LO ES YA QUE LOS SUBRBOLES DEL NODO L DIFIEREN EN ALTURA POR MS DE 1.
57
58
RBOLES AVL
UN EJEMPLO DE ARBOL AVL ES EL RBOL (a), MIENTRAS QUE EL RBOL (b) NO LO ES.
RBOLES MULTIWAY
59
60
RBOLES MULTIWAY
LOS RBOLES SON UTILIZADOS PARA ALMACENAR INFORMACIN Y PARA PODER ACCEDERLA. CUANDO SE TRATA DE VOLMENES MUY GRANDES DE DATOS ALMACENADOS EN DISCO DURO, LAS ESTRUCTURAS Y ESTRATEGIAS DE BSQUEDA VISTAS ANTERIORMENTE RESULTAN INEFICIENTES, ESPECIALMENTE POR EL ALTO NMERO DE ACCESOS AL DISCO. PARA EVITAR TENER QUE HACER MUCHOS ACCESOS A DISCO ES RAZONABLE TENER VARIAS CLAVES EN CADA NODO DEL RBOL. CUANDO LA INFORMACIN DE VARIOS NODOS SE JUNTA FORMANDO PEQUEOS GRUPOS A ESTOS SE LES LLAMA PGINAS. SI EN CADA ACCESO A DISCO UN PROCEDIMIENTO PUEDE LEER TODA UNA PGINA DE DATOS EN LUGAR DE LEERLOS DE UNO EN UNO: SE PUEDE DISMINUIR SIGNIFICATIVAMENTE EL NMERO DE ACCESOS NECESARIOS PARA ENCONTRAR UN DETERMINADO DATO.
RBOLES GENERALES Y BINARIOS 61
RBOLES MULTIWAY
A LOS RBOLES QUE MANEJAN EN CADA NODO UNA PGINA SE LES LLAMA RBOLES MULTIWAY: CADA NODO PODR TENER UN MXIMO DE M VALORES O CLAVES Y POR CONSIGIENTE M + 1 LIGAS A SUS DECENDIENTES. LA BSQUEDA DE UNA CLAVE SERA ANLOGA A LA DE LOS RBOLES 2-3-4. INSERTAR UN DATO EN UN NODO M (ES DECIR, QUE YA EST LLENO, CON M - 1 ELEMENTOS) IMPLICA DIVIDIR DICHO NODO EN 2 NODOS DE TIPO M/2 (PARA ELLO SE ASUME QUE ES NMERO PAR): EJEMPLO, UN NODO 4 (QUE TIENE 3 ELEMENTOS) SE DIVIDE EN 2 NODOS DE TIPO 2, AL IGUAL QUE EN EL CASO DE LOS RBOLES 2-3-4.
62
RBOLES MULTIWAY
EL TAMAO DE UNA PGINA NO ES TOTALMENTE ARBITRARIO: A MAYOR TAMAO EL TIEMPO PARA PROCESARLA ES MAYOR. DEPENDE TAMBIN DE LA CANTIDAD DE MEMORIA PRINCIPAL DISPONIBLE.
RBOLES B
63
64
RBOLES B
ESTE TIPO DE RBOLES FUE LLAMADO RBOLES B POR R. BAYER Y E. McCREIGHT, LOS PRIMEROS EN CONSIDERAR EL USO DE ESTOS RBOLES DE TIPO MULTIWAY. UN RBOL B DE ORDEN w CUMPLE CON LAS SIGUIENTES PROPIEDADES: TODA PGINA, EXCEPTO LA RAZ CONTIENE AL MENOS w CLAVES. LA RAZ CONTIENE AL MENOS UNA CLAVE. LA RAZ TIENE AL MENOS 2 DESCENDIENTES. TODA PGINA CONTIENE A LO SUMO 2 w CLAVES. TODA PGINA EXCEPTO LAS HOJAS TIENE m + 1 DECENDIENTES, DNDE m ES EL NMERO DE CLAVES EN LA PGINA. LAS HOJAS NO TIENEN DECENDIENTES. TODAS LAS HOJAS ESTN EN EL MISMO NIVEL.
RBOLES B
CADA NODO PGINA ES REPRESENTADO POR UNA ESTRUCTURA QUE TIENE: UN ESPACIO PARA 2 w CLAVES Y 2 w + 1 APUNTADORES HACIA SUS DECENDIENTES. UN CAMPO CON UN VALOR QUE INDICA EL NMERO ACTUAL DE CLAVES EN LA PGINA. ESTE TIPO DE RBOLES SLO SON TILES CUANDO SON DE ORDEN MAYOR O IGUAL A 3. LAS OPERACIONES DE ALTAS Y BAJAS EN UN RBOL B NO ALTERAN SU BALANCE.
65
66
RBOLES B
ALTAS Y BAJAS EN UN RBOL B EJEMPLO DE UNA ALTA EN UN RBOL B: SE DA DE ALTA EL DATO 50:
RBOLES B
EJEMPLO DE UNA BAJA EN UN RBOL B:
67
68
RBOLES B
RBOLES B
EJEMPLO PASO A PASO DE LA BAJA DEL N 76 EN UN RBOL B:
69
70
RBOLES B+
RBOLES B+
UNA VARIACIN A LOS RBOLES B CONSISTE EN QUE TODAS LAS CLAVES ESTN EN LAS HOJAS MIENTRAS QUE LOS NODOS NO TERMINALES CONTIENEN LOS NDICES PARA LAS CLAVES. ADICIONALMENTE LAS HOJAS ESTN CONECTADAS SECUENCIALMENTE. EN ESTOS RBOLES SE REQUIEREN 2 TIPOS DE ESTRUCTURAS: UNA PARA REPRESENTAR LOS NODOS NO TERMINALES: IGUAL A LA DE LOS RBOLES B. OTRA PARA LAS HOJAS: TIENE UN APUNTADOR ADICIONAL PARA APUNTAR A LA SIGUIENTE HOJA. ESTOS RBOLES SON ESPECIALMENTE TILES PARA APLICACIONES QUE REQUIEREN AMBOS TIPOS DE ACCESO, SECUENCIAL Y ALEATORIO.
71
72
RBOLES B+
PARA BUSCAR UN DATO EN ESTOS RBOLES ES NECESARIO RECORRER UN CAMINO COMPLETO HASTA LA HOJA CORRESPONDIENTE SIGUIENDO LOS NDICES: EL TIEMPO DE BSQUEDA ES SIEMPRE CONSTANTE. LAS BAJAS SON DIFERENTES: CUANDO SE ELIMINA UN DATO SE TIENEN QUE MOVER Y REAJUSTAR ELEMENTOS PARA EVITAR HUECOS Y PARA QUE LA INFORMACIN EN LOS NODOS NO - TERMINALES ASOCIADOS NO CAMBIE. SI UNA PGINA TIENE MENOS DE LA MITAD DE ELEMENTOS (UNDERFLOW) ES NECESARIO BALANCEAR EL RBOL. PARA BALANCEAR SE REDISTRIBUYEN LOS DATOS O SE CONCATENAN PGINAS.
RBOLES B+
73
74
75
76
77
78
79
80
81