arboles generales y binarios y estructuras de indices

14
ÁRBOLES GENERALES Y BINARIOS 1 ÁRBOLES GENERALES Y BINARIOS Y ESTRUCTURAS DE ÍNDICES DEFINICIONES Y REPRESENTACIONES. NOMENCLATURA SOBRE ÁRBOLES. DECLARACIÓN Y REPRESENTACIÓN DE UN ÁRBOL BINARIO. RECORRIDOS SOBRE ÁRBOLES BINARIOS. CONSTRUCCIÓN DE UN ÁRBOL BINARIO. ÁRBOL BINARIO DE BÚSQUEDA. ÁRBOLES 2-3-4. ÁRBOLES ROJO – NEGRO. ÁRBOLES AVL. ÁRBOLES MULTIWAY. ÁRBOLES B. ÁRBOLES B+. ÁRBOLES BINARIOS HILVANADOS. ÁRBOLES GENERALES Y BINARIOS 2 DEFINICIONES Y REPRESENTACIONES ÁRBOLES GENERALES Y BINARIOS 3 DEFINICIONES Y REPRESENTACIONES UN BOSQUE ES UN GRAFO NO DIRIGIDO ACÍCLICO. UN ÁRBOL ES UNA ESTRUCTURA DE DATOS, QUE PUEDE DEFINIRSE DE FORMA RECURSIVA COMO: UNA ESTRUCTURA VACÍA O. UN ELEMENTO O CLAVE DE INFORMACIÓN (NODO) MÁS UN NÚMERO FINITO DE ESTRUCTURAS TIPO ÁRBOL, DISJUNTOS, LLAMADOS SUBÁRBOLES: SI DICHO NÚMERO 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 ACÍCLICO, CONEXO Y NO DIRIGIDO: ES UN GRAFO NO DIRIGIDO EN EL QUE EXISTE EXACTAMENTE UN CAMINO ENTRE TODO PAR DE NODOS. ESTA DEFINICIÓN PERMITE IMPLEMENTAR UN ÁRBOL Y SUS OPERACIONES EMPLEANDO LAS REPRESENTACIONES QUE SE UTILIZAN PARA LOS GRAFOS. ÁRBOLES GENERALES Y BINARIOS 4 DEFINICIONES Y REPRESENTACIONES LAS PRINCIPALES FORMAS DE REPRESENTACIÓN 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 MÁXIMO. EL ÁRBOL DE LA FIGURA ES UN EJEMPLO VÁLIDO DE ÁRBOL BINARIO. ÁRBOLES GENERALES Y BINARIOS 5 DEFINICIONES Y REPRESENTACIONES ÁRBOLES GENERALES Y BINARIOS 6 NOMENCLATURA SOBRE ÁRBOLES

Upload: tirso-alejandro

Post on 24-Nov-2015

53 views

Category:

Documents


8 download

TRANSCRIPT

  • RBOLES GENERALES Y BINARIOS 1

    RBOLES GENERALES Y BINARIOS Y ESTRUCTURAS DE NDICES 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 2

    DEFINICIONES Y REPRESENTACIONES

    RBOLES GENERALES Y BINARIOS 3

    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 OIGUAL 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 SEUTILIZAN PARA LOS GRAFOS.

    RBOLES GENERALES Y BINARIOS 4

    DEFINICIONES Y REPRESENTACIONES LAS PRINCIPALES FORMAS DE REPRESENTACIN SON:

    MEDIANTE UN GRAFO. MEDIANTE UN DIAGRAMA ENCOLUMNADO:

    a

    bd

    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.

    RBOLES GENERALES Y BINARIOS 5

    DEFINICIONES Y REPRESENTACIONES

    RBOLES GENERALES Y BINARIOS 6

    NOMENCLATURA SOBRE RBOLES

  • RBOLES GENERALES Y BINARIOS 7

    NOMENCLATURA SOBRE RBOLES RAZ: ES AQUEL ELEMENTO QUE NO TIENE ANTECESOR; EJEMPLO:

    a.

    RAMA: ES LA ARISTA ENTRE DOS NODOS. ANTECESOR: UN NODO X ES ANTECESOR DE UN NODO Y SI POR

    ALGUNA DE LAS RAMAS DE X SE PUEDE LLEGAR A Y. SUCESOR: UN NODO X ES SUCESOR DE UN NODO Y SI POR

    ALGUNA DE LAS RAMAS DE Y SE PUEDE LLEGAR A X. GRADO DE UN NODO: ES EL NMERO DE DESCENDIENTES

    DIRECTOS QUE TIENE. EJEMPLO: c TIENE GRADO 2, d TIENEGRADO 0, a TIENE GRADO 2.

    HOJA: ES UN NODO QUE NO TIENE DESCENDIENTES (GRADO 0).EJEMPLO: d.

    NODO INTERNO: ES AQUEL QUE TIENE AL MENOS UNDESCENDIENTE.

    RBOLES GENERALES Y BINARIOS 8

    NOMENCLATURA SOBRE RBOLES NIVEL: ES EL NMERO DE RAMAS QUE HAY QUE RECORRER PARA

    LLEGAR DE LA RAZ A UN NODO. EJEMPLO: EL NIVEL DEL NODOa ES 1 (ES UN CONVENIO), EL NIVEL DEL NODO e ES 3.

    ALTURA: ES EL NIVEL MS ALTO DEL RBOL. EN EL EJEMPLO LAALTURA ES 3.

    ANCHURA: ES EL MAYOR VALOR DEL NMERO DE NODOS QUEHAY EN UN NIVEL. EN LA FIGURA LA ANCHURA ES 3.

    RBOL BALANCEADO POR ALTURA: ES AQUEL EN DONDE TODOSLOS HIJOS O NODOS HOJA SE INTENTAN MANTENER A LA MISMADISTANCIA DE LA RAZ.

    RBOL BALANCEADO POR PESO: ES AQUEL EN DONDE LOS NODOSMS VISITADOS O UTILIZADOS SE MANTIENEN A POCADISTANCIA DE LA RAZ.

    RBOL RELLENO: SE DA CUANDO TODO NODO TIENE 2 HIJOS OBIEN ES HOJA.

    RBOL BINARIO COMPLETO: ES UN RBOL BINARIO RELLENO ENDNDE TODAS LAS HOJAS TIENEN LA MISMA PROFUNDIDAD.

    RBOLES GENERALES Y BINARIOS 9

    NOMENCLATURA SOBRE RBOLES ACLARACIONES:

    SE HA DENOMINADO a A LA RAZ, PERO SE PUEDEOBSERVAR SEGN LA FIGURA QUE CUALQUIER NODO PODRASER CONSIDERADO RAZ, BASTA CON GIRAR EL RBOL.

    PODRA DETERMINARSE POR EJEMPLO QUE b FUERA LARAZ Y a Y d LOS SUCESORES INMEDIATOS DE LA RAZb.

    GENERALMENTE EN LAS IMPLEMENTACIONES SOBRE UNCOMPUTADOR ES NECESARIA UNA JERARQUA, ES DECIR,QUE HAYA UNA NICA RAZ.

    RBOLES GENERALES Y BINARIOS 10

    DECLARACIN Y REPRESENTACIN DE UN RBOL BINARIO

    RBOLES GENERALES Y BINARIOS 11

    DECLARACIN Y REPRESENTACIN DE UN RBOL BINARIO SE DEFINIR EL RBOL CON UNA CLAVE DE TIPO ENTERO (PUEDE

    SER CUALQUIER OTRO TIPO DE DATOS), Y DOS HIJOS: IZQUIERDO(izq) Y DERECHO (der).

    PARA REPRESENTAR LOS ENLACES CON LOS HIJOS SE UTILIZANPUNTEROS.

    EL RBOL VACO SE REPRESENTAR CON UN PUNTERO NULO.

    RBOLES GENERALES Y BINARIOS 12

    DECLARACIN Y REPRESENTACIN DE UN RBOL BINARIO EN C UN RBOL BINARIO PUEDE DECLARARSE DE LA SIGUIENTE

    MANERA:typedef struct tarbol{

    int clave;struct tarbol *izq, *der;

    } tarbol;

  • RBOLES GENERALES Y BINARIOS 13

    DECLARACIN Y REPRESENTACIN DE UN RBOL BINARIO UNA FORMA MS DETALLADA SERA:

    ESTRUCTURA TreeNode:templateclass TreeNode{public:

    TreeNode(T e): data(e), leftPtr(NULL), rightPtr(NULL) {};

    TreeNode(T e, TreeNode* left,TreeNode* right)

    : data(e), leftPtr(left), rightPtr(right) {};

    T data;TreeNode *leftPtr,

    *rightPtr;};

    RBOLES GENERALES Y BINARIOS 14

    DECLARACIN Y REPRESENTACIN DE UN RBOL BINARIO

    ESTRUCTURA BinaryTree:templateclass BinaryTree{public:

    BinaryTree(): root(NULL) {};BinaryTree(T rootValue);BinaryTree(T rootValue,

    const BinaryTree& left,const BinaryTree& right);

    BinaryTree& operator= (constBinaryTree& b);

    ~BinaryTree(){ Clear();};

    RBOLES GENERALES Y BINARIOS 15

    DECLARACIN Y REPRESENTACIN DE UN RBOL BINARIO

    BinaryTree Left() const;BinaryTree Right() const;int IsEmpty() const

    { return (root == NULL);};T& operator() () const;void Clear();void Preorder();void Inorder();void Postorder();

    protected:TreeNode* root;

    };

    RBOLES GENERALES Y BINARIOS 16

    DECLARACIN Y REPRESENTACIN DE UN RBOL BINARIO LA REPRESENTACIN GRFICA ES LA SIGUIENTE:

    data

    *leftPtr *rightPtr

    RBOLES GENERALES Y BINARIOS 17

    DECLARACIN Y REPRESENTACIN DE UN RBOL BINARIO

    RBOLES GENERALES Y BINARIOS 18

    RECORRIDOS SOBRE RBOLES BINARIOS

  • RBOLES GENERALES Y BINARIOS 19

    RECORRIDOS SOBRE RBOLES BINARIOS SE CONSIDERAN DOS TIPOS DE RECORRIDO:

    RECORRIDO EN PROFUNDIDAD. RECORRIDO EN ANCHURA O A NIVEL.

    PUESTO QUE LOS RBOLES NO SON SECUENCIALES COMO LASLISTAS, HAY QUE BUSCAR ESTRATEGIAS ALTERNATIVAS PARAVISITAR TODOS LOS NODOS.

    RBOLES GENERALES Y BINARIOS 20

    RECORRIDOS SOBRE RBOLES BINARIOS RECORRIDOS EN PROFUNDIDAD RECORRIDO EN PREORDEN (PREORDER):

    CONSISTE EN VISITAR EL NODO ACTUAL (VISITAR PUEDE SERSIMPLEMENTE MOSTRAR LA CLAVE DEL NODO PORPANTALLA), Y DESPUS VISITAR EL SUBRBOL IZQUIERDO YUNA VEZ VISITADO, VISITAR EL SUBRBOL DERECHO.

    ES UN PROCESO RECURSIVO POR NATURALEZA. PARA LA FIGURA EJEMPLO LAS VISITAS SERAN EN EL ORDEN

    SIGUIENTE: a,b,d,c,e,f.

    RBOLES GENERALES Y BINARIOS 21

    RECORRIDOS SOBRE RBOLES BINARIOS

    LA CODIFICACIN EN C ES LA SIGUIENTE:

    void preorden(tarbol *a){

    if (a != NULL) {visitar(a);preorden(a->izq);preorden(a->der);

    }}

    RBOLES GENERALES Y BINARIOS 22

    RECORRIDOS SOBRE RBOLES BINARIOS RECORRIDO EN INORDEN U ORDEN CENTRAL (INORDER):

    SE VISITA EL SUBRBOL IZQUIERDO, EL NODO ACTUAL, YDESPUS SE VISITA EL SUBRBOL DERECHO.

    EN EL EJEMPLO DE LA FIGURA LAS VISITAS SERAN EN ESTEORDEN: b,d,a,e,c,f.

    LA CODIFICACIN EN C ES LA SIGUIENTE:void inorden(tarbol *a)

    {if (a != NULL) {

    inorden(a->izq);visitar(a);inorden(a->der);

    }}

    RBOLES GENERALES Y BINARIOS 23

    RECORRIDOS SOBRE RBOLES BINARIOS RECORRIDO EN POSTORDEN (POSTORDER):

    SE VISITAN PRIMERO EL SUBRBOL IZQUIERDO, DESPUS ELSUBRBOL DERECHO, Y POR LTIMO EL NODO ACTUAL.

    EN EL EJEMPLO DE LA FIGURA EL RECORRIDO QUEDARA AS:d,b,e,f,c,a.

    LA CODIFICACIN EN C ES LA SIGUIENTE:void postorden(arbol *a)

    {if (a != NULL) {

    postorden(a->izq);postorden(a->der);visitar(a);

    }}

    RBOLES GENERALES Y BINARIOS 24

    RECORRIDOS SOBRE RBOLES BINARIOS LA VENTAJA DEL RECORRIDO EN POSTORDEN ES QUE PERMITE

    BORRAR EL RBOL DE FORMA CONSISTENTE: SI VISITAR SE TRADUCE POR BORRAR EL NODO ACTUAL, AL

    EJECUTAR ESTE RECORRIDO SE BORRAR EL RBOL OSUBRBOL QUE SE PASA COMO PARMETRO.

    LA RAZN PARA HACER ESTO ES QUE NO SE DEBE BORRARUN NODO Y DESPUS SUS SUBRBOLES, PORQUE ALBORRARLO SE PUEDEN PERDER LOS ENLACES, Y AUNQUE NOSE PERDIERAN SE ROMPE CON LA REGLA DE MANIPULAR UNAESTRUCTURA DE DATOS INEXISTENTE.

  • RBOLES GENERALES Y BINARIOS 25

    RECORRIDOS SOBRE RBOLES BINARIOS EJEMPLOS DE RECORRIDOS DE RBOLES BINARIOS:

    RBOLES GENERALES Y BINARIOS 26

    RECORRIDOS SOBRE RBOLES BINARIOS

    RBOL PARA EJEMPLO DE RECORRIDOS EN AMPLITUD:

    RBOLES GENERALES Y BINARIOS 27

    RECORRIDOS SOBRE RBOLES BINARIOS RECORRIDOS EN AMPLITUD CONSISTE EN IR VISITANDO EL RBOL POR NIVELES. PRIMERO SE VISITAN LOS NODOS DE NIVEL 1 (LA RAZ), DESPUS

    LOS NODOS DE NIVEL 2, AS HASTA QUE YA NO QUEDEN MS. SI SE HACE EL RECORRIDO EN AMPLITUD DEL RBOL DE LA

    FIGURA EJEMPLO SE VISITARAN LOS NODOS EN ESTE ORDEN:a,b,c,d,e,f.

    EN ESTE CASO EL RECORRIDO NO SE REALIZAR DE FORMARECURSIVA SINO ITERATIVA, UTILIZANDO UNA COLA COMOESTRUCTURA DE DATOS AUXILIAR: EL PROCEDIMIENTO CONSISTE EN ENCOLAR (SI NO ESTN

    VACOS) LOS SUBRBOLES IZQUIERDO Y DERECHO DEL NODOEXTRAIDO DE LA COLA, Y SEGUIR DESENCOLANDO YENCOLANDO HASTA QUE LA COLA EST VACA.

    EN LA CODIFICACIN QUE VIENE A CONTINUACIN NO SEIMPLEMENTAN LAS OPERACIONES SOBRE COLAS.

    RBOLES GENERALES Y BINARIOS 28

    RECORRIDOS SOBRE RBOLES BINARIOS LA CODIFICACIN EN C ES LA SIGUIENTE:

    void amplitud(tarbol *a){

    tCola cola; /* LAS CLAVES DE LA COLA SERN DE TIPO RBOLBINARIO */arbol *aux;if (a != NULL) {

    CrearCola(cola);encolar(cola, a);while (!colavacia(cola)) {

    desencolar(cola, aux);visitar(aux);if (aux->izq != NULL) encolar(cola, aux->izq);if (aux->der != NULL) encolar(cola, aux->der);

    }}

    }

    RBOLES GENERALES Y BINARIOS 29

    CONSTRUCCIN DE UN RBOL BINARIO

    RBOLES GENERALES Y BINARIOS 30

    CONSTRUCCIN DE UN RBOL BINARIO

    A CONTINUACIN SE ESTUDIA UN MTODO PARA CREAR UNRBOL BINARIO QUE NO TENGA CLAVES REPETIDAS.

    SE PARTE DE SU RECORRIDO EN PREORDEN E INORDEN,ALMACENADOS EN SENDOS ARRAYS.

  • RBOLES GENERALES Y BINARIOS 31

    CONSTRUCCIN DE UN RBOL BINARIO 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:

    RBOLES GENERALES Y BINARIOS 32

    CONSTRUCCIN DE UN RBOL BINARIO A CONTINUACIN COMIENZA UN PROCESO RECURSIVO. SE PROCEDE A CREAR EL SUBRBOL IZQUIERDO, CUYO TAMAO

    EST LIMITADO POR LOS NDICES IZQ Y DER. LA SIGUIENTE POSICIN EN EL RECORRIDO EN PREORDEN ES LA

    RAZ DE ESTE SUBRBOL. QUEDA LO SIGUIENTE:

    RBOLES GENERALES Y BINARIOS 33

    CONSTRUCCIN DE UN RBOL BINARIO EL SUBRBOL b TIENE UN SUBRBOL DERECHO, QUE NO TIENE

    NINGN DESCENDIENTE, SEGN INDICAN LOS NDICES IZQ YDER.

    SE HA OBTENIDO EL SUBRBOL IZQUIERDO COMPLETO DE LARAZ a, PUESTO QUE b NO TIENE SUBRBOL IZQUIERDO:

    DESPUS SEGUIR CONSTRUYNDOSE EL SUBRBOL DERECHO APARTIR DE LA RAZ a.

    RBOLES GENERALES Y BINARIOS 34

    RBOL BINARIO DE BSQUEDA

    RBOLES GENERALES Y BINARIOS 35

    RBOL BINARIO DE BSQUEDA UN RBOL BINARIO DE BSQUEDA ES AQUEL QUE ES:

    UNA ESTRUCTURA VACA, O. UN ELEMENTO O CLAVE DE INFORMACIN (NODO) MS UN

    NMERO FINITO -A LO SUMO DOS- DE ESTRUCTURAS TIPORBOL, DISJUNTOS, LLAMADOS SUBRBOLES QUE CUMPLENLO SIGUIENTE:

    TODAS LAS CLAVES DEL SUBRBOL IZQUIERDO AL NODOSON MENORES QUE LA CLAVE DEL NODO.

    TODAS LAS CLAVES DEL SUBRBOL DERECHO AL NODOSON MAYORES QUE LA CLAVE DEL NODO.

    AMBOS SUBRBOLES SON RBOLES BINARIOS DEBSQUEDA.

    RBOLES GENERALES Y BINARIOS 36

    RBOL BINARIO DE BSQUEDA UN EJEMPLO DE RBOL BINARIO DE BSQUEDA ES EL SIGUIENTE:

  • RBOLES GENERALES Y BINARIOS 37

    RBOL BINARIO DE BSQUEDA AL DEFINIR EL TIPO DE DATOS QUE REPRESENTA LA CLAVE DE UN

    NODO DENTRO DE UN RBOL BINARIO DE BSQUEDA ESNECESARIO QUE EN DICHO TIPO SE PUEDA ESTABLECER UNARELACIN DE ORDEN. POR EJEMPLO, SUPONER QUE EL TIPO DE DATOS DE LA CLAVE

    ES UN PUNTERO (DA IGUAL A LO QUE APUNTE). EN EL EJEMPLO DE LA FIGURA LAS CLAVES SON NMEROS

    ENTEROS: DADA LA RAZ 4, LAS CLAVES DEL SUBRBOL IZQUIERDO

    SON MENORES QUE 4, Y LAS CLAVES DEL SUBRBOLDERECHO SON MAYORES QUE 4.

    ESTO SE CUMPLE TAMBIN PARA TODOS LOS SUBRBOLES. SI SE HACE EL RECORRIDO DE ESTE RBOL EN ORDEN

    CENTRAL SE OBTIENE UNA LISTA DE LOS NMEROSORDENADA DE MENOR A MAYOR.

    RBOLES GENERALES Y BINARIOS 38

    RBOL BINARIO DE BSQUEDA UNA VENTAJA FUNDAMENTAL ES QUE SON EN GENERAL MUCHO

    MS RPIDOS PARA LOCALIZAR UN ELEMENTO QUE UNA LISTAENLAZADA.

    SON MS RPIDOS PARA INSERTAR Y BORRAR ELEMENTOS. SI EL RBOL EST PERFECTAMENTE EQUILIBRADO (LA

    DIFERENCIA ENTRE EL N DE NODOS DEL SUBRBOL IZQUIERDOY EL N DE NODOS DEL SUBRBOL DERECHO ES A LO SUMO 1,PARA TODOS LOS NODOS): EL NMERO DE COMPARACIONES NECESARIAS PARA

    LOCALIZAR UNA CLAVE ES APROXIMADAMENTE LOG N EN ELPEOR CASO.

    EL ALGORITMO DE INSERCIN EN UN RBOL BINARIO DEBSQUEDA TIENE LA VENTAJA (SOBRE LOS ARRAYSORDENADOS, DONDE SE EMPLEARA BSQUEDA DICOTMICAPARA LOCALIZAR UN ELEMENTO) DE QUE NO NECESITAHACER UNA REUBICACIN DE LOS ELEMENTOS DE LAESTRUCTURA PARA QUE ESTA SIGA ORDENADA DESPUS DELA INSERCIN.

    RBOLES GENERALES Y BINARIOS 39

    RBOL BINARIO DE BSQUEDA DICHO ALGORITMO FUNCIONA AVANZANDO POR EL RBOL

    ESCOGIENDO LA RAMA IZQUIERDA O DERECHA EN FUNCINDE LA CLAVE QUE SE INSERTA Y LA CLAVE DEL NODOACTUAL, HASTA ENCONTRAR SU UBICACIN:

    INSERTAR LA CLAVE 7 EN EL RBOL DE LA FIGURAREQUIERE AVANZAR POR EL RBOL HASTA LLEGAR A LACLAVE 8, E INTRODUCIR LA NUEVA CLAVE EN ELSUBRBOL IZQUIERDO A 8.

    EL ALGORITMO DE BORRADO EN RBOLES ES ALGO MSCOMPLEJO, PERO MS EFICIENTE QUE EL DE BORRADO EN UNARRAY ORDENADO.

    RBOLES GENERALES Y BINARIOS 40

    RBOL BINARIO DE BSQUEDA OPERACIONES BSICAS SOBRE RBOLES BINARIOS DE

    BSQUEDA BSQUEDA SI EL RBOL NO ES DE BSQUEDA, ES NECESARIO EMPLEAR UNO

    DE LOS RECORRIDOS ANTERIORES SOBRE EL RBOL PARALOCALIZARLO.

    EL RESULTADO ES IDNTICO AL DE UNA BSQUEDASECUENCIAL.

    APROVECHANDO LAS PROPIEDADES DEL RBOL DE BSQUEDASE PUEDE ACELERAR LA LOCALIZACIN: HAY QUE DESCENDER A LO LARGO DEL RBOL A IZQUIERDA

    O DERECHA DEPENDIENDO DEL ELEMENTO QUE SE BUSCA. LA CODIFICACIN EN C ES LA SIGUIENTE:

    boolean buscar(tarbol *a, int elem){

    if (a == NULL) return FALSE;else if (a->clave < elem) return buscar(a->der, elem);else if (a->clave > elem) return buscar(a->izq, elem);else return TRUE;

    }

    RBOLES GENERALES Y BINARIOS 41

    RBOL BINARIO DE BSQUEDA INSERCIN LA INSERCIN RESULTA PRCTICAMENTE IDNTICA A LA

    BSQUEDA. CUANDO SE LLEGA A UN RBOL VACO SE CREA EL NODO EN EL

    PUNTERO QUE SE PASA COMO PARMETRO POR REFERENCIA, DEESTA MANERA LOS NUEVOS ENLACES MANTIENEN LACOHERENCIA.

    SI EL ELEMENTO A INSERTAR YA EXISTE ENTONCES NO SE HACENADA.

    RBOLES GENERALES Y BINARIOS 42

    RBOL BINARIO DE BSQUEDA LA CODIFICACIN EN C ES LA SIGUIENTE:

    void insertar(tarbol **a, int elem){

    if (*a == NULL) {*a = (arbol *) malloc(sizeof(arbol));(*a)->clave = elem;(*a)->izq = (*a)->der = NULL;

    }else if ((*a)->clave < elem) insertar(&(*a)->der, elem);else if ((*a)->clave > elem) insertar(&(*a)->izq, elem);

    }

  • RBOLES GENERALES Y BINARIOS 43

    RBOL BINARIO DE BSQUEDA BORRADO LA OPERACIN DE BORRADO RESULTA SER ALGO MS

    COMPLICADA. EL RBOL DEBE SEGUIR SIENDO DE BSQUEDA TRAS EL

    BORRADO. UNA VEZ ENCONTRADO EL NODO A BORRAR PUEDEN DARSE

    TRES CASOS: EL NODO NO TIENE DESCENDIENTES: SIMPLEMENTE SE BORRA. EL NODO TIENE AL MENOS UN DESCENDIENTE POR UNA SOLA

    RAMA: SE BORRA DICHO NODO Y SU PRIMER DESCENDIENTESE ASIGNA COMO HIJO DEL PADRE DEL NODO BORRADO:

    EN EL RBOL DE LA FIGURA SE BORRA EL NODO CUYACLAVE ES 1, RESULTANDO EL SIGUIENTE RBOL:

    RBOLES GENERALES Y BINARIOS 44

    RBOL BINARIO DE BSQUEDA EL NODO TIENE AL MENOS UN DESCENDIENTE POR CADA RAMA:

    AL BORRAR DICHO NODO ES NECESARIO MANTENER LACOHERENCIA DE LOS ENLACES Y LA ESTRUCTURA DE UNRBOL BINARIO DE BSQUEDA:

    LA SOLUCIN CONSISTE EN SUSTITUIR LA INFORMACINDEL NODO QUE SE BORRA POR LA DE UNA DE LAS HOJASY BORRAR A CONTINUACIN DICHA HOJA:

    DEBE SER LA HOJA QUE CONTENGA UNA DE ESTASDOS CLAVES:

    LA MAYOR DE LAS CLAVES MENORES AL NODOQUE SE BORRA: SI SE QUIERE BORRAR EL NODO 4DEL RBOL DE LA FIGURA EJEMPLO SESUSTITUIR LA CLAVE 4 POR LA CLAVE 2.

    LA MENOR DE LAS CLAVES MAYORES AL NODOQUE SE BORRA: SI SE QUIERE BORRAR EL NODO 4DEL RBOL DE LA FIGURA EJEMPLO SESUSTITUIR LA CLAVE 4 POR LA CLAVE 5.

    RBOLES GENERALES Y BINARIOS 45

    RBOL BINARIO DE BSQUEDA EL ALGORITMO DE BORRADO QUE SE MUESTRA A

    CONTINUACIN REALIZA LA SUSTITUCIN POR LA MAYOR DELAS CLAVES MENORES, PARA LO CUAL ES NECESARIO: DESCENDER PRIMERO A LA IZQUIERDA DEL NODO QUE SE VA

    A BORRAR. AVANZAR SIEMPRE A LA DERECHA HASTA ENCONTRAR UN

    NODO HOJA. A CONTINUACIN SE MUESTRA GRFICAMENTE EL PROCESO

    DE BORRAR EL NODO DE CLAVE 4:

    RBOLES GENERALES Y BINARIOS 46

    RBOL BINARIO DE BSQUEDA LA CODIFICACIN EN C ES LA SIGUIENTE, DONDE EL

    PROCEDIMIENTO SUSTITUIR ES EL QUE DESCIENDE POR ELRBOL CUANDO SE DA EL CASO DEL NODO CON DESCENCIENTESPOR 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 lasmenores */free(aux);

    }

    RBOLES GENERALES Y BINARIOS 47

    RBOL BINARIO DE BSQUEDA}void sustituir(tarbol **a, tarbol **aux){

    if ((*a)->der != NULL) sustituir(&(*a)->der, aux);else {(*aux)->clave = (*a)->clave;*aux = *a;*a = (*a)->izq;}

    }

    RBOLES GENERALES Y BINARIOS 48

    RBOLES 2-3-4

  • RBOLES GENERALES Y BINARIOS 49

    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 PODRTENER 4 LIGAS.

    UN RBOL CON ESTAS CARACTERSTICAS PUEDE CONTENERENTONCES NODOS CON 2, 3 O 4 LIGAS, DE AH QUE SE LES LLAMARBOLES 2-3-4.

    EN LOS RBOLES 2-3-4 TODOS LOS SUBRBOLES TIENEN LAMISMA ALTURA Y ESTN SIEMPRE BALANCEADOS.

    ESTOS RBOLES SON MUY ATRACTIVOS PARA ELALMACENAMIENTO Y RECUPERACIN DE CLAVES, SIN EMBARGOSON UN TANTO COMPLICADOS DE IMPLEMENTAR.

    RBOLES GENERALES Y BINARIOS 50

    RBOLES 2-3-4 LOS RBOLES 2-3 SON UN TIPO DE RBOL BALANCEADO POR

    ALTURA (HEIGHT BALANCED) EN DONDE TODOS LOS NODOS NO-TERMINALES TIENEN 2 3 DECENDIENTES Y TODOS LOS NODOSHOJA TIENEN LA MISMA LONGITUD (PATH LENGTH) O DISTANCIADESDE LA RAZ.

    EN ESTOS RBOLES SLO LAS HOJAS CONTIENEN LAINFORMACIN (VALORES).

    LOS NODOS NO-TERMINAMES CONTIENEN INDICADORES QUECONSTAN DE 2 VALORES DE LOS CUALES EL IZQUIERDO ES ELMXIMO DEL SUBRBOL IZQUIERDO Y EL SEGUNDO VALOR ESEL VALOR MXIMO DEL SUBRBOL CENTRAL.

    RBOLES GENERALES Y BINARIOS 51

    RBOLES 2-3-4RBOL 2-3-4

    RBOLES GENERALES Y BINARIOS 52

    RBOLES ROJO - NEGRO

    RBOLES GENERALES Y BINARIOS 53

    RBOLES ROJO - NEGRO LOS RBOLES ROJO-NEGRO SON RBOLES BINARIOS EN DONDE

    CADA NODO TIENE UN COLOR YA SEA ROJO O NEGRO. ESTOS RBOLES REPRESENTAN UNA MANERA DE TRANSFORMAR

    UN RBOL 2-3-4 EN UNO BINARIO, LO QUE SE PUEDE LOGRARUTILIZANDO LOS SIGUIENTES LINEAMIENTOS: TODO NODO 2 ES TRANSFORMADO A UN NODO NEGRO CON

    DECENDIENTES NEGROS. TODO NODO 3 ES TRANSFORMADO EN UN NODO NEGRO

    CON UN HIJO ROJO Y UNO NEGRO. UN NODO 4 ES TRANSFORMADO A UN NODO NEGRO CON

    DOS HIJOS ROJOS.

    RBOLES GENERALES Y BINARIOS 54

    RBOLES ROJO - NEGRO ESTO SATISFACE LAS SIGUIENTES PROPIEDADES:

    TODOS LOS NODOS TIENEN UN COLOR, YA SEA ROJO ONEGRO.

    TODA HOJA ES NEGRA. AMBOS DESCENDIENTES DE UN NODO ROJO SON SIEMPRE

    NODOS NEGROS. CADA CAMINO DESDE CUALQUIER NODO HASTA UNA HOJA

    DESCENDIENTE CONTIENE EL MISMO NMERO DE NODOSNEGROS.

    NO HAY DOS NODOS ROJOS ADYACENTES EN UN CAMINO.

  • RBOLES GENERALES Y BINARIOS 55

    RBOLES ROJO - NEGRO UN EJEMPLO DE TRANSFORMACIN DE LOS NODOS '3' Y '4' EN

    ROJO NEGRO ES EL SIGUIENTE:

    RBOLES GENERALES Y BINARIOS 56

    RBOLES ROJO - NEGRO AL NMERO DE NODOS NEGROS EN EL CAMINO DE UN NODO A

    UNA HOJA DESCENDIENTE SE LE CONOCE COMO LA ALTURA -NEGRA DEL NODO.

    LA ALTURA - NEGRA DE UN RBOL ROJO - NEGRO ES LA ALTURA NEGRA DE SU RAZ.

    EJEMPLO DE TRANSFORMACIN DE UN RBOL 2-3-4 EN UN RBOLROJO NEGRO:

    RBOLES GENERALES Y BINARIOS 57

    RBOLES AVL

    RBOLES GENERALES Y BINARIOS 58

    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 LOSSUBRBOLES: SE DEBE TENER QUE GUARDAR INFORMACIN ADICIONAL EN

    CADA NODO: UN CONTADOR DE LA DIFERENCIA ENTRE LASALTURAS DE SUS DOS SUBRBOLES.

    LOS RBOLES AVL FUERON NOMBRADOS POR SUSDESARROLLADORES ADELSON - VELSKII Y LANDIS.

    PROBABLEMENTE LA PRINCIPAL CARACTERSTICA DE LOSRBOLES AVL ES SU EXELENTE TIEMPO DE EJECUCIN PARA LASDIFERENTES OPERACIONES (BSQUEDAS, ALTAS Y BAJAS).

    EN LAS SIGUIENTES DOS FIGURAS LA PRIMERA ES UN RBOL AVLY LA SEGUNDA NO LO ES YA QUE LOS SUBRBOLES DEL NODOL DIFIEREN EN ALTURA POR MS DE 1.

    RBOLES GENERALES Y BINARIOS 59

    RBOLES AVL UN EJEMPLO DE ARBOL AVL ES EL RBOL (a), MIENTRAS QUE EL

    RBOL (b) NO LO ES.

    RBOLES GENERALES Y BINARIOS 60

    RBOLES MULTIWAY

  • RBOLES GENERALES Y BINARIOS 61

    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 YESTRATEGIAS DE BSQUEDA VISTAS ANTERIORMENTERESULTAN INEFICIENTES, ESPECIALMENTE POR EL ALTONMERO DE ACCESOS AL DISCO.

    PARA EVITAR TENER QUE HACER MUCHOS ACCESOS A DISCO ESRAZONABLE TENER VARIAS CLAVES EN CADA NODO DEL RBOL.

    CUANDO LA INFORMACIN DE VARIOS NODOS SE JUNTAFORMANDO PEQUEOS GRUPOS A ESTOS SE LES LLAMA PGINAS.

    SI EN CADA ACCESO A DISCO UN PROCEDIMIENTO PUEDE LEERTODA UNA PGINA DE DATOS EN LUGAR DE LEERLOS DE UNO ENUNO: SE PUEDE DISMINUIR SIGNIFICATIVAMENTE EL NMERO DE

    ACCESOS NECESARIOS PARA ENCONTRAR UN DETERMINADODATO.

    RBOLES GENERALES Y BINARIOS 62

    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 SUSDECENDIENTES.

    LA BSQUEDA DE UNA CLAVE SERA ANLOGA A LA DE LOSRBOLES 2-3-4.

    INSERTAR UN DATO EN UN NODO M (ES DECIR, QUE YA ESTLLENO, CON M - 1 ELEMENTOS) IMPLICA DIVIDIR DICHO NODOEN 2 NODOS DE TIPO M/2 (PARA ELLO SE ASUME QUE ESNMERO PAR):

    EJEMPLO, UN NODO 4 (QUE TIENE 3 ELEMENTOS) SEDIVIDE EN 2 NODOS DE TIPO 2, AL IGUAL QUE EN ELCASO DE LOS RBOLES 2-3-4.

    RBOLES GENERALES Y BINARIOS 63

    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 GENERALES Y BINARIOS 64

    RBOLES B

    RBOLES GENERALES Y BINARIOS 65

    RBOLES B ESTE TIPO DE RBOLES FUE LLAMADO RBOLES B POR R. BAYER

    Y E. McCREIGHT, LOS PRIMEROS EN CONSIDERAR EL USO DEESTOS RBOLES DE TIPO MULTIWAY.

    UN RBOL B DE ORDEN w CUMPLE CON LAS SIGUIENTESPROPIEDADES: 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 LAPGINA.

    LAS HOJAS NO TIENEN DECENDIENTES. TODAS LAS HOJAS ESTN EN EL MISMO NIVEL.

    RBOLES GENERALES Y BINARIOS 66

    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.

  • RBOLES GENERALES Y BINARIOS 67

    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 GENERALES Y BINARIOS 68

    RBOLES B EJEMPLO DE UNA BAJA EN UN RBOL B:

    RBOLES GENERALES Y BINARIOS 69

    RBOLES B

    RBOLES GENERALES Y BINARIOS 70

    RBOLES B EJEMPLO PASO A PASO DE LA BAJA DEL N 76 EN UN RBOL B:

    RBOLES GENERALES Y BINARIOS 71

    RBOLES B+

    RBOLES GENERALES Y BINARIOS 72

    RBOLES B+

    UNA VARIACIN A LOS RBOLES B CONSISTE EN QUE TODAS LASCLAVES ESTN EN LAS HOJAS MIENTRAS QUE LOS NODOS NO TERMINALES CONTIENEN LOS NDICES PARA LAS CLAVES.

    ADICIONALMENTE LAS HOJAS ESTN CONECTADASSECUENCIALMENTE.

    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 LASIGUIENTE HOJA.

    ESTOS RBOLES SON ESPECIALMENTE TILES PARAAPLICACIONES QUE REQUIEREN AMBOS TIPOS DE ACCESO,SECUENCIAL Y ALEATORIO.

  • RBOLES GENERALES Y BINARIOS 73

    RBOLES B+ PARA BUSCAR UN DATO EN ESTOS RBOLES ES NECESARIO

    RECORRER UN CAMINO COMPLETO HASTA LA HOJACORRESPONDIENTE 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 QUELA INFORMACIN EN LOS NODOS NO - TERMINALESASOCIADOS 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 SECONCATENAN PGINAS.

    RBOLES GENERALES Y BINARIOS 74

    RBOLES B+

    RBOLES GENERALES Y BINARIOS 75

    RBOLES BINARIOS HILVANADOS

    RBOLES GENERALES Y BINARIOS 76

    RBOLES BINARIOS HILVANADOS AL ESTUDIAR LA REPRESENTACIN ENLAZADA DE UN RBOL

    BINARIO ES FCIL OBSERVAR QUE EXISTEN MUCHOS ENLACESNULOS.

    DE HECHO, PUEDEN EXISTIR MS ENLACES NULOS QUEPUNTEROS CON VALORES REALES.

    PARA UN RBOL CON N NODOS, EXISTEN N+1 ENLACESNULOS DE LOS 2N ENLACES EXISTENTES EN LAREPRESENTACIN (MS DE LA MITAD).

    COMO EL ESPACIO DE MEMORIA OCUPADO POR LOS ENLACESNULOS ES EL MISMO QUE EL OCUPADO POR LOS NO NULOS,PODRA RESULTAR CONVENIENTE UTILIZAR ESTOS ENLACESNULOS PARA ALMACENAR ALGUNA INFORMACIN DE INTERSPARA LA MANIPULACIN DEL RBOL BINARIO.

    UNA FORMA DE UTILIZAR ESTOS ENLACES ES SUSTITUIRLOS PORPUNTEROS A OTROS NODOS DEL RBOL.

    RBOLES GENERALES Y BINARIOS 77

    RBOLES BINARIOS HILVANADOS LOS ENLACES NULOS SITUADOS EN EL SUBRBOL DERECHO DE

    UN NODO SE SUELEN REUTILIZAR PARA APUNTAR AL SUCESORDE ESE NODO EN UN DETERMINADO RECORRIDO DEL RBOL, POREJEMPLO INFIJO.

    LOS ENLACES NULOS EN SUBRBOLES IZQUIERDOS SE UTILIZANPARA APUNTAR AL PREDECESOR DEL NODO EN EL MISMO TIPODE RECORRIDO.

    SI PARA ALGN NODO NO EXISTE PREDECESOR (PORQUE ES ELPRIMERO DEL RECORRIDO) O SUCESOR (PORQUE ES EL LTIMO),SE MANTIENE CON VALOR NULO EL ENLACE CORRESPONDIENTE.

    OTRA VENTAJA ES LA POSIBILIDAD DE UN ACCESO RPIDO ALSUCESOR (O AL PREDECESOR) DE UN NODO, QUE ES UNAOPERACIN FRECUENTEMENTE NECESARIA.

    RBOLES GENERALES Y BINARIOS 78

    RBOLES BINARIOS HILVANADOS

  • RBOLES GENERALES Y BINARIOS 79

    RBOLES BINARIOS HILVANADOS PARA PODER MANEJAR CORRECTAMENTE TODA LA

    INFORMACIN DE LA QUE SE DISPONE EN LA REPRESENTACINHILVANADA (CON HILOS) DEL RBOL BINARIO, ES NECESARIOPODER DISTINGUIR ENTRE LO QUE SON PUNTEROS NORMALES,QUE REPRESENTAN LAS RELACIONES REALES ENTRE LOS NODOS,Y LO QUE SON HILOS.

    ESTO SE PUEDE HACER AADIENDO DOS CAMPOS BOOLEANOS ALA REPRESENTACIN DE LOS NODOS DEL RBOL.

    ESTOS NUEVOS CAMPOS INDICARN SI LOS ENLACES IZQUIERDOY DERECHO SON HILOS O NO.

    CON EL OBJETO DE NO MANTENER ABSOLUTAMENTE NINGNENLACE NULO Y PARA FACILITAR EL RECORRIDO DEL RBOL, SESUELE AADIR A LA ESTRUCTURA UN NODO RAZ QUE NOCONTIENE INFORMACIN REAL.

    RBOLES GENERALES Y BINARIOS 80

    RBOLES BINARIOS HILVANADOS EL NODO RAZ QUE REPRESENTA EL RBOL VACO TENDR LA

    ESTRUCTURA QUE SE MUESTRA EN LA FIGURA:

    RBOLES GENERALES Y BINARIOS 81

    RBOLES BINARIOS HILVANADOS EN GENERAL, LA UTILIZACIN DE ENLACES HILOS SIMPLIFICA

    LOS ALGORITMOS DE RECORRIDO DEL RBOL, POR LO QUE SONRECOMENDABLES CUANDO EL RECORRIDO DEL RBOL ES UNAOPERACIN FRECUENTE.

    DESDE EL PUNTO DE VISTA DE LA MANIPULACIN GENERAL DELRBOL HAY QUE TENER EN CUENTA QUE: LA INSERCIN DE NUEVOS NODOS DEBE MANTENER EN TODO

    MOMENTO ESTA ESTRUCTURA DE ENLACES CON LOS NODOSSUCESOR Y PREDECESOR.

    CADA VEZ QUE SE INSERTE UN NODO SE DEBERCOMPROBAR SI EXISTEN ENLACES DE ESTE TIPO QUE DEBANSER MODIFICADOS O CREADOS, ADEMS DE LOS PUNTEROSNORMALES QUE RELACIONAN LOS NODOS DEL RBOL.