SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
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
Arboles
Á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
Arboles
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;

Más contenido relacionado

Was ist angesagt? (20)

Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
Conjunto independiente máximo
Conjunto independiente máximoConjunto independiente máximo
Conjunto independiente máximo
 
Algoritmo Heap Sort
Algoritmo Heap SortAlgoritmo Heap Sort
Algoritmo Heap Sort
 
Binary tree
Binary tree Binary tree
Binary tree
 
Árboles
ÁrbolesÁrboles
Árboles
 
Arboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de BusquedaArboles Binarios y Arboles Binarios de Busqueda
Arboles Binarios y Arboles Binarios de Busqueda
 
5. arboles binarios
5. arboles binarios5. arboles binarios
5. arboles binarios
 
Listas
ListasListas
Listas
 
Circular linked list
Circular linked list Circular linked list
Circular linked list
 
Tree-In Data Structure
Tree-In Data StructureTree-In Data Structure
Tree-In Data Structure
 
Arboles balanceados
Arboles balanceadosArboles balanceados
Arboles balanceados
 
B trees and_b__trees
B trees and_b__treesB trees and_b__trees
B trees and_b__trees
 
Arbol b+
Arbol b+Arbol b+
Arbol b+
 
Arbol B
Arbol BArbol B
Arbol B
 
Lista simple
Lista simpleLista simple
Lista simple
 
C11.1. árboles
C11.1. árbolesC11.1. árboles
C11.1. árboles
 
Algoritmos intercalación
Algoritmos intercalaciónAlgoritmos intercalación
Algoritmos intercalación
 
Tree and Binary Search tree
Tree and Binary Search treeTree and Binary Search tree
Tree and Binary Search tree
 
Structures donnee
Structures donneeStructures donnee
Structures donnee
 
Threaded Binary Tree.pptx
Threaded Binary Tree.pptxThreaded Binary Tree.pptx
Threaded Binary Tree.pptx
 

Andere mochten auch

Elementos básicos de la comunicación
Elementos básicos de la comunicaciónElementos básicos de la comunicación
Elementos básicos de la comunicaciónroberfdz
 
Il codice nascosto nelle app di messaggistica mobile
Il codice nascosto nelle app di messaggistica mobileIl codice nascosto nelle app di messaggistica mobile
Il codice nascosto nelle app di messaggistica mobileVeronica Penzo
 
1 introduccion historia
1 introduccion historia1 introduccion historia
1 introduccion historiaAndres Ovalles
 
Presentación Móviles
Presentación MóvilesPresentación Móviles
Presentación MóvilesSergiohdz
 
Programa de estudio de historia guia delmaestro
Programa de estudio de historia guia delmaestroPrograma de estudio de historia guia delmaestro
Programa de estudio de historia guia delmaestroOscar Machorro
 

Andere mochten auch (8)

Primera unidad
Primera unidadPrimera unidad
Primera unidad
 
Elementos básicos de la comunicación
Elementos básicos de la comunicaciónElementos básicos de la comunicación
Elementos básicos de la comunicación
 
Music video
Music videoMusic video
Music video
 
Mi hallowen 2
Mi hallowen 2Mi hallowen 2
Mi hallowen 2
 
Il codice nascosto nelle app di messaggistica mobile
Il codice nascosto nelle app di messaggistica mobileIl codice nascosto nelle app di messaggistica mobile
Il codice nascosto nelle app di messaggistica mobile
 
1 introduccion historia
1 introduccion historia1 introduccion historia
1 introduccion historia
 
Presentación Móviles
Presentación MóvilesPresentación Móviles
Presentación Móviles
 
Programa de estudio de historia guia delmaestro
Programa de estudio de historia guia delmaestroPrograma de estudio de historia guia delmaestro
Programa de estudio de historia guia delmaestro
 

Ähnlich wie Arboles (6)

áRboles
áRbolesáRboles
áRboles
 
áRboles
áRbolesáRboles
áRboles
 
Arboles03
Arboles03Arboles03
Arboles03
 
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
 

Último

EXPERIENCIA DE APRENDIZAJE 3 EPT - SECUNDARIA-2024.docx
EXPERIENCIA DE APRENDIZAJE 3  EPT - SECUNDARIA-2024.docxEXPERIENCIA DE APRENDIZAJE 3  EPT - SECUNDARIA-2024.docx
EXPERIENCIA DE APRENDIZAJE 3 EPT - SECUNDARIA-2024.docxssuser9be75b1
 
Planes y programas - Nivel Secundaria 2024 word.doc
Planes y programas - Nivel Secundaria 2024 word.docPlanes y programas - Nivel Secundaria 2024 word.doc
Planes y programas - Nivel Secundaria 2024 word.docVaniecitaValverde
 
Dia internacional de peliculas iberoamericanas.pptx 2
Dia internacional de peliculas iberoamericanas.pptx 2Dia internacional de peliculas iberoamericanas.pptx 2
Dia internacional de peliculas iberoamericanas.pptx 2xc025079
 
BLAS DE OTERO PRESENTACION PUERTAS ABIERTAS.pdf
BLAS DE OTERO PRESENTACION PUERTAS ABIERTAS.pdfBLAS DE OTERO PRESENTACION PUERTAS ABIERTAS.pdf
BLAS DE OTERO PRESENTACION PUERTAS ABIERTAS.pdfcpblasdeotero
 
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...William Henry Vegazo Muro
 
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdf
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdfROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdf
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdfavitiadgo
 
7. ¡Promoviendo la Paternidad Responsable en La Recoleta!
7. ¡Promoviendo la Paternidad Responsable en La Recoleta!7. ¡Promoviendo la Paternidad Responsable en La Recoleta!
7. ¡Promoviendo la Paternidad Responsable en La Recoleta!ProfesorGualberto
 
La Planificacion en Educacion Inicial EDU7 Ccesa007.pdf
La Planificacion en Educacion Inicial   EDU7    Ccesa007.pdfLa Planificacion en Educacion Inicial   EDU7    Ccesa007.pdf
La Planificacion en Educacion Inicial EDU7 Ccesa007.pdfDemetrio Ccesa Rayme
 
4. ¡Promoviendo la Paternidad Responsable en La Recoleta!
4. ¡Promoviendo la Paternidad Responsable en La Recoleta!4. ¡Promoviendo la Paternidad Responsable en La Recoleta!
4. ¡Promoviendo la Paternidad Responsable en La Recoleta!ProfesorGualberto
 
8. ¡Promoviendo la Paternidad Responsable en La Recoleta!
8. ¡Promoviendo la Paternidad Responsable en La Recoleta!8. ¡Promoviendo la Paternidad Responsable en La Recoleta!
8. ¡Promoviendo la Paternidad Responsable en La Recoleta!ProfesorGualberto
 
El_ideal_de_Nación-En_Miguel-Triana[1].pdf
El_ideal_de_Nación-En_Miguel-Triana[1].pdfEl_ideal_de_Nación-En_Miguel-Triana[1].pdf
El_ideal_de_Nación-En_Miguel-Triana[1].pdfAngel David Guerrero
 
Actividades El Hombrecito de jengibre.pdf
Actividades El Hombrecito de jengibre.pdfActividades El Hombrecito de jengibre.pdf
Actividades El Hombrecito de jengibre.pdfDaiaJansen
 
PROYECTO PRIMAVERA NUMERICA PARA PREESCOLAR.pptx
PROYECTO PRIMAVERA NUMERICA PARA PREESCOLAR.pptxPROYECTO PRIMAVERA NUMERICA PARA PREESCOLAR.pptx
PROYECTO PRIMAVERA NUMERICA PARA PREESCOLAR.pptxMarthaAlejandraHerna1
 
6. ¡Promoviendo la Paternidad Responsable en La Recoleta!
6. ¡Promoviendo la Paternidad Responsable en La Recoleta!6. ¡Promoviendo la Paternidad Responsable en La Recoleta!
6. ¡Promoviendo la Paternidad Responsable en La Recoleta!ProfesorGualberto
 
2. ¡Promoviendo la Paternidad Responsable en La Recoleta!
2. ¡Promoviendo la Paternidad Responsable en La Recoleta!2. ¡Promoviendo la Paternidad Responsable en La Recoleta!
2. ¡Promoviendo la Paternidad Responsable en La Recoleta!ProfesorGualberto
 
EVALUACIÓN DIAGNÓSTICA DPCC 33 y 4°.docx
EVALUACIÓN DIAGNÓSTICA DPCC 33 y 4°.docxEVALUACIÓN DIAGNÓSTICA DPCC 33 y 4°.docx
EVALUACIÓN DIAGNÓSTICA DPCC 33 y 4°.docxHermesMedinaMoran
 

Último (20)

EXPERIENCIA DE APRENDIZAJE 3 EPT - SECUNDARIA-2024.docx
EXPERIENCIA DE APRENDIZAJE 3  EPT - SECUNDARIA-2024.docxEXPERIENCIA DE APRENDIZAJE 3  EPT - SECUNDARIA-2024.docx
EXPERIENCIA DE APRENDIZAJE 3 EPT - SECUNDARIA-2024.docx
 
Planes y programas - Nivel Secundaria 2024 word.doc
Planes y programas - Nivel Secundaria 2024 word.docPlanes y programas - Nivel Secundaria 2024 word.doc
Planes y programas - Nivel Secundaria 2024 word.doc
 
Dia internacional de peliculas iberoamericanas.pptx 2
Dia internacional de peliculas iberoamericanas.pptx 2Dia internacional de peliculas iberoamericanas.pptx 2
Dia internacional de peliculas iberoamericanas.pptx 2
 
BLAS DE OTERO PRESENTACION PUERTAS ABIERTAS.pdf
BLAS DE OTERO PRESENTACION PUERTAS ABIERTAS.pdfBLAS DE OTERO PRESENTACION PUERTAS ABIERTAS.pdf
BLAS DE OTERO PRESENTACION PUERTAS ABIERTAS.pdf
 
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...
2024-orientaciones-para-la-evaluacion-diagnostica-2024-en-las-iiee-publicas-d...
 
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdf
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdfROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdf
ROSAURA REVUELTAS, ESPERANZA Y LA SAL DE LA TIERRA (1).pdf
 
Repaso Ejercicios Pruebas CRECE-PR-2024.pptx
Repaso Ejercicios Pruebas CRECE-PR-2024.pptxRepaso Ejercicios Pruebas CRECE-PR-2024.pptx
Repaso Ejercicios Pruebas CRECE-PR-2024.pptx
 
7. ¡Promoviendo la Paternidad Responsable en La Recoleta!
7. ¡Promoviendo la Paternidad Responsable en La Recoleta!7. ¡Promoviendo la Paternidad Responsable en La Recoleta!
7. ¡Promoviendo la Paternidad Responsable en La Recoleta!
 
La Planificacion en Educacion Inicial EDU7 Ccesa007.pdf
La Planificacion en Educacion Inicial   EDU7    Ccesa007.pdfLa Planificacion en Educacion Inicial   EDU7    Ccesa007.pdf
La Planificacion en Educacion Inicial EDU7 Ccesa007.pdf
 
4. ¡Promoviendo la Paternidad Responsable en La Recoleta!
4. ¡Promoviendo la Paternidad Responsable en La Recoleta!4. ¡Promoviendo la Paternidad Responsable en La Recoleta!
4. ¡Promoviendo la Paternidad Responsable en La Recoleta!
 
8. ¡Promoviendo la Paternidad Responsable en La Recoleta!
8. ¡Promoviendo la Paternidad Responsable en La Recoleta!8. ¡Promoviendo la Paternidad Responsable en La Recoleta!
8. ¡Promoviendo la Paternidad Responsable en La Recoleta!
 
Tema 4.- INSFRAESTRUCTURAS DE TI Y TECNOLOGIAS EMERGENTES.pdf
Tema 4.- INSFRAESTRUCTURAS DE TI Y TECNOLOGIAS EMERGENTES.pdfTema 4.- INSFRAESTRUCTURAS DE TI Y TECNOLOGIAS EMERGENTES.pdf
Tema 4.- INSFRAESTRUCTURAS DE TI Y TECNOLOGIAS EMERGENTES.pdf
 
El_ideal_de_Nación-En_Miguel-Triana[1].pdf
El_ideal_de_Nación-En_Miguel-Triana[1].pdfEl_ideal_de_Nación-En_Miguel-Triana[1].pdf
El_ideal_de_Nación-En_Miguel-Triana[1].pdf
 
El anhelo de Dios en Sion (Sesión de clase)
El anhelo de Dios en Sion (Sesión de clase)El anhelo de Dios en Sion (Sesión de clase)
El anhelo de Dios en Sion (Sesión de clase)
 
Actividades El Hombrecito de jengibre.pdf
Actividades El Hombrecito de jengibre.pdfActividades El Hombrecito de jengibre.pdf
Actividades El Hombrecito de jengibre.pdf
 
PROYECTO PRIMAVERA NUMERICA PARA PREESCOLAR.pptx
PROYECTO PRIMAVERA NUMERICA PARA PREESCOLAR.pptxPROYECTO PRIMAVERA NUMERICA PARA PREESCOLAR.pptx
PROYECTO PRIMAVERA NUMERICA PARA PREESCOLAR.pptx
 
6. ¡Promoviendo la Paternidad Responsable en La Recoleta!
6. ¡Promoviendo la Paternidad Responsable en La Recoleta!6. ¡Promoviendo la Paternidad Responsable en La Recoleta!
6. ¡Promoviendo la Paternidad Responsable en La Recoleta!
 
Tema 4.- Cultura corporativa: Comunicacion e imagen de marca.pdf
Tema 4.- Cultura corporativa: Comunicacion e imagen de marca.pdfTema 4.- Cultura corporativa: Comunicacion e imagen de marca.pdf
Tema 4.- Cultura corporativa: Comunicacion e imagen de marca.pdf
 
2. ¡Promoviendo la Paternidad Responsable en La Recoleta!
2. ¡Promoviendo la Paternidad Responsable en La Recoleta!2. ¡Promoviendo la Paternidad Responsable en La Recoleta!
2. ¡Promoviendo la Paternidad Responsable en La Recoleta!
 
EVALUACIÓN DIAGNÓSTICA DPCC 33 y 4°.docx
EVALUACIÓN DIAGNÓSTICA DPCC 33 y 4°.docxEVALUACIÓN DIAGNÓSTICA DPCC 33 y 4°.docx
EVALUACIÓN DIAGNÓSTICA DPCC 33 y 4°.docx
 

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
  • 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
  • 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;