SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Universidad Fermín Toro

Escuela de Computación

 Estructuras de Datos I




ARBOLES




         José Miguel Torres M   19.106.680

         Luis Miguel Henríquez S 20.913.021
¿Qué es un Árbol?



Un árbol es una estructura jerárquica no lineal que posee un número de
elementos finitos llamados nodos, posee una relación padre – hijo entre sus
nodos.

Se puede representar un árbol como el organigrama de una empresa. Poniendo
como raíz al presidente y desprendiendo de ahí los nodos padres, hijos y hojas del
mismo.



                        Forma de representar un Árbol




                                           MiEmpresa



                    Ventas                                Producción



               Ve         Internacional           Portátiles            Pc’s



           Europa              Asia             América
Características de un Árbol



Un árbol se caracteriza por estar formado por una serie de nodos conectados por
una serie de aristas que verifican que:

1. hay un único nodo raíz.

2. cada nodo, excepto la raíz, tiene un único padre.
3. hay un único camino (desde la raíz hasta cada nodo).



Nodo: Cada elemento del árbol.

Nodo RAIZ: El primer elemento del árbol no posee antecesores.




                                          A                     Nodo RAIZ




                        B                              C




         D                          E         F                  G




                    H                                      I
Nodo Padre: es el nodo predecesor de 1 o más nodos.

      Nodo Hijo: Es el nodo sucesor de un elemento.

      Hermanos: Son los nodos predecesores del mismo padre.




                                A
                                                                        C: es padre de F y
                                                                                G

                    B                         C




D                           E       F                     G



               H                                  F y G son Hijos de C
                                                  F y G son hermanos



      Nodo interno: Tiene al menos un hijo.

      Nodo Hojas: No tiene hijos.


                                         A
    D: Es un nodo
       interno


                            B                         C




           D                        E         F                   G



                        H                                 H: es un nodo hoja
Subárbol: Son todos los nodos descendientes por la izquierda o derecha de un
       padre.




                                                     A
Subárbol Izquierdo de B


                                     B                             C




                                                E
                        D                                    F                  G



                                                                       Subárbol derecho de B
                                 H



       Nivel:Es el largo del camino de la raíz al nodo. Cada vez que un nodo se ramifica
       aumenta el nivel.




                               Nivel 0                                      A




              Nivel 1                                        B                             C




              Nivel 2                       D                          E        F
                                                                                               G


              Nivel 3                                    H
Grado: Es el número de descendientes directos de un nodo. El grado máximo de
todos los nodos es el grado del árbol.

Altura: Son las capas que crecen a partir de la raíz. La altura de un árbol es la
altura de la raíz.


                                                  A
                                  B                               C



                      D               E

                                                          F       G       H

              I                   J
                                                          K




                                              A




                              B                               C




                  D                       E           F       G       H



         I                J                           K
Árbol Binario



Los árboles binarios son los que tienen a lo más dos hijos por cada nodo. Un árbol
binario completo o balanceado es aquel en el cual todos los nodos tienen dos
hijos, salvo los que están en el último nivel.




                                                A




                               B                               C




                    D                      E           F       G




             H             I



Arboles binarios distintos: Se dice que dos árboles binarios son distintos cuando
sus estructuras son diferentes.


                                                 A




                                   B                           C




                     D                      E              F       G




              H                I
A




                                 B                                        C




                     D                        E               F           G




             H               I                                    J           K




                                     Árbol Binario Similar

Dos árboles binarios son similares cuando sus estructuras son idénticas, pero la
información que contienen sus nodos es diferente.


                                                  A




                             B                                        C




                 D                        E               F           G




         H               I
A




                               C                         B




                    D                 E         F         G




             H             I




                          Árbol Binario Equivalente



Son aquellos árboles que son similares y que además los nodos contienen la
misma información:
A



                    C                                   B




        D                       E               F       G




H               I




                                            A




                            C                               B




            D                       E               F       G




    H                   I
Representación mediante arreglos:

Cuando se tiene los nodos etiquetados con enteros, es posible usar una
representación mediante arreglos unidimensionales A, en donde el índice i
representa el valor del nodo i, y A(i) representa el valor del padre de i

                                                A(i) es el nodo padre del nodo i

                                         A(4)=B es el nodo padre del nodo D




0      1      1       2      2       5      5        5        3         3
1      2      3       4      5       6      7        8        9         10
Representación en memoria dinámica: Los árboles se pueden representar en
memoria estática a través de estructuras arreglo. También se puede hacer a
través de estructuras dinámicas. Su representación es la siguiente:




            Ejemplo: Representar la expresión (A*B)+(C/D)^ 35

                                    +




                  *                           ^




           A                B           /              35




                                C                 D
Recorrer un árbol en preorden:



Se debe comenzar por el nodo raíz.

Recorrer el subárbol izquierdo en preorden.

recorrer el subárbol derecho en preorden.



Pseudo código para hacer el recorrido en preorden

Preorden

Comience

si (t <> 0)entonces

Imprima info (*t)
preorden (Ni(*t))
preorden (Nd(*t))

Sino
fin-si

Termine

RECORRIDO: A, B, D, C, E, G, H, F
Recorrido de un árbol en postorden:



Recorrer el subárbol izquierdo en postorden.

Recorrer el subárbol derecho en postorden.

Examinar la raíz.



Si(t<> 0) ejecute

posorden(ei(*t))
posorden (ed(*t))
imprima info (*t)

Sino
fin-si

Termine

RECORRIDO: D, B, G, H, E, F, C, A.
Recorrido de un árbol en inorden:



Recorrer el subárbol izquierdo en inorden.

Examinar la raíz.

Recorrer el subárbol derecho en inorden.



Pseudocodigo del recorrico inorden




si (t <> ) entonces

inorden (Ni(*t))
imprima info (*t)
inorden (Nd(*t))

Sino
fin-si

Termine

RECORRIDO: D, B, A, G, E, H, C, F.
Códigos en lenguaje c para crear, insertar un nodo y eliminar un nodo en un árbol.
  En memoria Dinamica




TYPE

TipoPuntero = ^TipoNodoABB;

TipoNodoABB = RECORD

info : TipoInfo;

izquierdo : TipoPuntero;

derecho: TipoPuntero;

End;

Crear un ABB vacío.

Procedure InicializaArbol(var RaizArbol: TipoPuntero);

Begin

RaizArbol := NIL;
Insertar nuevos elementos al ABB.

Procedure Insertar_arbol_binario( var Raizarbol: TipoPuntero;InfoNodo: TipoInfo);

Var

NuevoNodo: TipoPuntero; (*puntero para nodo nuevo*)

Ptr, Anterior:TipoPuntero; (* usado para buscar en el ABB*)

ClaveNueva: TipoClave;(* clave del nuevo nodo a insertar*)

BEGIN

(* Crear un nuevo nodo*)

New(NuevoNodo); NuevoNodo^.izquierdo:= NIL; NuevoNodo^.derecho:= NIL;

NuevoNodo^.info:= InfoNodo;

(* Buscar el lugar de inserción*)

ptr: = RaizArbol; Anterior: = NIL;

While ptr <> NIL Do

begin

anterior : = ptr;

if ptr^.info.clave > ClaveNueva then

ptr := ptr^.izquierdo

else

ptr := ptr^.derecho

end;

if anterior = NIL then

raizarbol = NuevoNodo

else

if anterior^.info.clave > ClaveNueva then

anterior^.izquierdo: = Nuevonodo

else

anterior^.derecho: = Nuevonodo

END;
Eliminar elementos ya existentes.

(a)Eliminación de un nodo hoja sólo consiste en anular el puntero de su nodo padre

(b)Eliminación de un nodo con un hijo, es necesario reasignar el puntero del padre hacia el hijo.

(c)Eliminación de un nodo con dos hijos : Reemplazar el nodo que deseamos suprimir con el nodo de valor más próximo al
valor del nodo suprimido. Así será posible hacer el reemplazo por "El mayor más cercano" o "El menor más cercano",
dependiendo de qué subárbol sea escogido el nodo.

Procedure Suprimir (Var RaizArbol: TipoPuntero;ValorClave: TipoClave);

(* Suprime el valor que contiene ValorClave del árbol, apuntado por RaizArbol, supondremos que este nodo existe en el
árbol*)

Var

ptr, anterior: TipoPuntero;

BEGIN

ptr := RaizArbol; anterior:= NIL;

While ptr ^.info.clave<> ValorClave Do

begin

anterior : = ptr;

if ptr^.info.clave > ValorClave then

ptr := ptr^.izquierdo

else

ptr := ptr^.derecho

end;

(* Suprimir nodo apuntado por ptr*, anterior apunta al padre de este nodo*)

SuprimirNodo(RaízArbol, ptr, Anterior)

END;
Procedure SuprimirNodo (Var RaízArbol : Tipo_Puntero; ptr, anterior: Tipo_ Puntero);

(* Suprime el nodo apuntado por Ptr sobre el árbol binario con puntero RaizArbol, Anterior es un puntero al nodo
padre ( NIL si el nodo a suprimir es el nodo Raiz)*)

Var

temp: Tipo_Puntero;

BEGIN

(*Caso b.1 Supresión de una hoja*)

if(ptr^.derecho = NIL) AND (ptr^.izquierdo = NIL) then

IF Anterior = NIL then (*Nodo(ptr) es el último en el árbol)

RaizArbol:= NIL

else

if anterior^.derecho = Ptr then

anterior^.derecho : = NIL

else anterior^.izquierdo: = NIL

else (* Caso b.3 supresión de nodo con dos hijos*)

if(ptr^.derecho <> NIL) AND (ptr^.izquierdo <> NIL) then

begin (* Encontrar el valor para reemplazar, valor más próximo al eliminado*)

anterior: = ptr;

temp := ptr^.izquierdo;

While temp^.derecho<> NIL Do

begin

anterior:= temp;

temp : = temp^.derecho

end;
(* Copiar la información a reemplazar en el nodo*)



ptr^.info:= temp^.info;

if anterior = Ptr then

anterior^.izquierdo:= temp^.izquierdo

else

anterior^.derecho:= temp^.izquierdo;

ptr:= temp;

end
else (* Caso b.2 Nodo con un hijo*)



(* Inicializa uno de los campos punteros de nodo (anterior) dependiendo si el nodo que se está suprimiendo tiene
un hijo a la derecha o izquierda*)



if ptr^.derecho <>NIL then (* Hay un hijo derecho*)

if anterior = NIL then

RaizArbol:= Ptr^.derecho

else

if anterior^.derecho=ptr then

anterior^.derecho := ptr^.derecho

else

anterior^.izquierdo := ptr^.derecho

else(* hay un hijo izquierdo*)

if anterior = NIL then

RaizArbol:= Ptr^.izquierdo

else

if anterior^.derecho=ptr then

anterior^.derecho := ptr^.izquierdo

else

anterior^.izquierdo := ptr^.izquierdo;

dispose (ptr);

END;

Weitere ähnliche Inhalte

Ähnlich wie Arboles (8)

áRboles
áRbolesáRboles
áRboles
 
áRboles
áRbolesáRboles
áRboles
 
Árboles
ÁrbolesÁrboles
Árboles
 
Arboles03
Arboles03Arboles03
Arboles03
 
Arboles
ArbolesArboles
Arboles
 
Arboles
ArbolesArboles
Arboles
 
Arboles
ArbolesArboles
Arboles
 
Arboles
ArbolesArboles
Arboles
 

Mehr von Jose Miguel Torres Mendoza (8)

Representacion de Conocimiento en I.A
Representacion de Conocimiento en I.ARepresentacion de Conocimiento en I.A
Representacion de Conocimiento en I.A
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Mantenimiento de sistemas
Mantenimiento de sistemasMantenimiento de sistemas
Mantenimiento de sistemas
 
Calidad de software
Calidad de softwareCalidad de software
Calidad de software
 
Auditoria de sistemas
Auditoria de sistemasAuditoria de sistemas
Auditoria de sistemas
 
Diseño del proyecto sistemas II
Diseño del proyecto sistemas IIDiseño del proyecto sistemas II
Diseño del proyecto sistemas II
 
Arboles
ArbolesArboles
Arboles
 

Kürzlich hochgeladen

libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdfRAMON EUSTAQUIO CARO BAYONA
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfpatriciavsquezbecerr
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...YobanaZevallosSantil1
 

Kürzlich hochgeladen (20)

libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf05 Fenomenos fisicos y quimicos de la materia.pdf
05 Fenomenos fisicos y quimicos de la materia.pdf
 
sesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdfsesión de aprendizaje 4 E1 Exposición oral.pdf
sesión de aprendizaje 4 E1 Exposición oral.pdf
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
recursos naturales america cuarto basico
recursos naturales america cuarto basicorecursos naturales america cuarto basico
recursos naturales america cuarto basico
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO  YESSENIA 933623393 NUEV...
IV SES LUN 15 TUTO CUIDO MI MENTE CUIDANDO MI CUERPO YESSENIA 933623393 NUEV...
 

Arboles

  • 1. Universidad Fermín Toro Escuela de Computación Estructuras de Datos I ARBOLES José Miguel Torres M 19.106.680 Luis Miguel Henríquez S 20.913.021
  • 2. ¿Qué es un Árbol? Un árbol es una estructura jerárquica no lineal que posee un número de elementos finitos llamados nodos, posee una relación padre – hijo entre sus nodos. Se puede representar un árbol como el organigrama de una empresa. Poniendo como raíz al presidente y desprendiendo de ahí los nodos padres, hijos y hojas del mismo. Forma de representar un Árbol MiEmpresa Ventas Producción Ve Internacional Portátiles Pc’s Europa Asia América
  • 3. Características de un Árbol Un árbol se caracteriza por estar formado por una serie de nodos conectados por una serie de aristas que verifican que: 1. hay un único nodo raíz. 2. cada nodo, excepto la raíz, tiene un único padre. 3. hay un único camino (desde la raíz hasta cada nodo). Nodo: Cada elemento del árbol. Nodo RAIZ: El primer elemento del árbol no posee antecesores. A Nodo RAIZ B C D E F G H I
  • 4. Nodo Padre: es el nodo predecesor de 1 o más nodos. Nodo Hijo: Es el nodo sucesor de un elemento. Hermanos: Son los nodos predecesores del mismo padre. A C: es padre de F y G B C D E F G H F y G son Hijos de C F y G son hermanos Nodo interno: Tiene al menos un hijo. Nodo Hojas: No tiene hijos. A D: Es un nodo interno B C D E F G H H: es un nodo hoja
  • 5. Subárbol: Son todos los nodos descendientes por la izquierda o derecha de un padre. A Subárbol Izquierdo de B B C E D F G Subárbol derecho de B H Nivel:Es el largo del camino de la raíz al nodo. Cada vez que un nodo se ramifica aumenta el nivel. Nivel 0 A Nivel 1 B C Nivel 2 D E F G Nivel 3 H
  • 6. Grado: Es el número de descendientes directos de un nodo. El grado máximo de todos los nodos es el grado del árbol. Altura: Son las capas que crecen a partir de la raíz. La altura de un árbol es la altura de la raíz. A B C D E F G H I J K A B C D E F G H I J K
  • 7.
  • 8. Árbol Binario Los árboles binarios son los que tienen a lo más dos hijos por cada nodo. Un árbol binario completo o balanceado es aquel en el cual todos los nodos tienen dos hijos, salvo los que están en el último nivel. A B C D E F G H I Arboles binarios distintos: Se dice que dos árboles binarios son distintos cuando sus estructuras son diferentes. A B C D E F G H I
  • 9. A B C D E F G H I J K Árbol Binario Similar Dos árboles binarios son similares cuando sus estructuras son idénticas, pero la información que contienen sus nodos es diferente. A B C D E F G H I
  • 10. A C B D E F G H I Árbol Binario Equivalente Son aquellos árboles que son similares y que además los nodos contienen la misma información:
  • 11. A C B D E F G H I A C B D E F G H I
  • 12. Representación mediante arreglos: Cuando se tiene los nodos etiquetados con enteros, es posible usar una representación mediante arreglos unidimensionales A, en donde el índice i representa el valor del nodo i, y A(i) representa el valor del padre de i A(i) es el nodo padre del nodo i A(4)=B es el nodo padre del nodo D 0 1 1 2 2 5 5 5 3 3 1 2 3 4 5 6 7 8 9 10
  • 13. Representación en memoria dinámica: Los árboles se pueden representar en memoria estática a través de estructuras arreglo. También se puede hacer a través de estructuras dinámicas. Su representación es la siguiente: Ejemplo: Representar la expresión (A*B)+(C/D)^ 35 + * ^ A B / 35 C D
  • 14. Recorrer un árbol en preorden: Se debe comenzar por el nodo raíz. Recorrer el subárbol izquierdo en preorden. recorrer el subárbol derecho en preorden. Pseudo código para hacer el recorrido en preorden Preorden Comience si (t <> 0)entonces Imprima info (*t) preorden (Ni(*t)) preorden (Nd(*t)) Sino fin-si Termine RECORRIDO: A, B, D, C, E, G, H, F
  • 15. Recorrido de un árbol en postorden: Recorrer el subárbol izquierdo en postorden. Recorrer el subárbol derecho en postorden. Examinar la raíz. Si(t<> 0) ejecute posorden(ei(*t)) posorden (ed(*t)) imprima info (*t) Sino fin-si Termine RECORRIDO: D, B, G, H, E, F, C, A.
  • 16. Recorrido de un árbol en inorden: Recorrer el subárbol izquierdo en inorden. Examinar la raíz. Recorrer el subárbol derecho en inorden. Pseudocodigo del recorrico inorden si (t <> ) entonces inorden (Ni(*t)) imprima info (*t) inorden (Nd(*t)) Sino fin-si Termine RECORRIDO: D, B, A, G, E, H, C, F.
  • 17. Códigos en lenguaje c para crear, insertar un nodo y eliminar un nodo en un árbol. En memoria Dinamica TYPE TipoPuntero = ^TipoNodoABB; TipoNodoABB = RECORD info : TipoInfo; izquierdo : TipoPuntero; derecho: TipoPuntero; End; Crear un ABB vacío. Procedure InicializaArbol(var RaizArbol: TipoPuntero); Begin RaizArbol := NIL;
  • 18. Insertar nuevos elementos al ABB. Procedure Insertar_arbol_binario( var Raizarbol: TipoPuntero;InfoNodo: TipoInfo); Var NuevoNodo: TipoPuntero; (*puntero para nodo nuevo*) Ptr, Anterior:TipoPuntero; (* usado para buscar en el ABB*) ClaveNueva: TipoClave;(* clave del nuevo nodo a insertar*) BEGIN (* Crear un nuevo nodo*) New(NuevoNodo); NuevoNodo^.izquierdo:= NIL; NuevoNodo^.derecho:= NIL; NuevoNodo^.info:= InfoNodo; (* Buscar el lugar de inserción*) ptr: = RaizArbol; Anterior: = NIL; While ptr <> NIL Do begin anterior : = ptr; if ptr^.info.clave > ClaveNueva then ptr := ptr^.izquierdo else ptr := ptr^.derecho end; if anterior = NIL then raizarbol = NuevoNodo else if anterior^.info.clave > ClaveNueva then anterior^.izquierdo: = Nuevonodo else anterior^.derecho: = Nuevonodo END;
  • 19. Eliminar elementos ya existentes. (a)Eliminación de un nodo hoja sólo consiste en anular el puntero de su nodo padre (b)Eliminación de un nodo con un hijo, es necesario reasignar el puntero del padre hacia el hijo. (c)Eliminación de un nodo con dos hijos : Reemplazar el nodo que deseamos suprimir con el nodo de valor más próximo al valor del nodo suprimido. Así será posible hacer el reemplazo por "El mayor más cercano" o "El menor más cercano", dependiendo de qué subárbol sea escogido el nodo. Procedure Suprimir (Var RaizArbol: TipoPuntero;ValorClave: TipoClave); (* Suprime el valor que contiene ValorClave del árbol, apuntado por RaizArbol, supondremos que este nodo existe en el árbol*) Var ptr, anterior: TipoPuntero; BEGIN ptr := RaizArbol; anterior:= NIL; While ptr ^.info.clave<> ValorClave Do begin anterior : = ptr; if ptr^.info.clave > ValorClave then ptr := ptr^.izquierdo else ptr := ptr^.derecho end; (* Suprimir nodo apuntado por ptr*, anterior apunta al padre de este nodo*) SuprimirNodo(RaízArbol, ptr, Anterior) END;
  • 20. Procedure SuprimirNodo (Var RaízArbol : Tipo_Puntero; ptr, anterior: Tipo_ Puntero); (* Suprime el nodo apuntado por Ptr sobre el árbol binario con puntero RaizArbol, Anterior es un puntero al nodo padre ( NIL si el nodo a suprimir es el nodo Raiz)*) Var temp: Tipo_Puntero; BEGIN (*Caso b.1 Supresión de una hoja*) if(ptr^.derecho = NIL) AND (ptr^.izquierdo = NIL) then IF Anterior = NIL then (*Nodo(ptr) es el último en el árbol) RaizArbol:= NIL else if anterior^.derecho = Ptr then anterior^.derecho : = NIL else anterior^.izquierdo: = NIL else (* Caso b.3 supresión de nodo con dos hijos*) if(ptr^.derecho <> NIL) AND (ptr^.izquierdo <> NIL) then begin (* Encontrar el valor para reemplazar, valor más próximo al eliminado*) anterior: = ptr; temp := ptr^.izquierdo; While temp^.derecho<> NIL Do begin anterior:= temp; temp : = temp^.derecho end;
  • 21. (* Copiar la información a reemplazar en el nodo*) ptr^.info:= temp^.info; if anterior = Ptr then anterior^.izquierdo:= temp^.izquierdo else anterior^.derecho:= temp^.izquierdo; ptr:= temp; end
  • 22.
  • 23. else (* Caso b.2 Nodo con un hijo*) (* Inicializa uno de los campos punteros de nodo (anterior) dependiendo si el nodo que se está suprimiendo tiene un hijo a la derecha o izquierda*) if ptr^.derecho <>NIL then (* Hay un hijo derecho*) if anterior = NIL then RaizArbol:= Ptr^.derecho else if anterior^.derecho=ptr then anterior^.derecho := ptr^.derecho else anterior^.izquierdo := ptr^.derecho else(* hay un hijo izquierdo*) if anterior = NIL then RaizArbol:= Ptr^.izquierdo else if anterior^.derecho=ptr then anterior^.derecho := ptr^.izquierdo else anterior^.izquierdo := ptr^.izquierdo; dispose (ptr); END;