SlideShare una empresa de Scribd logo
1 de 22
PROGRAMACIÓN LÓGICA Y FUNCIONAL



         NILTON SANCHEZ
          RAFAEL REYES


FUNDACIÓN UNIVERSITARIA SAN MARTIN
      INGENIERIA DE SISTEMAS
ÁRBOLES

   Es una extensión de una estructura de datos que imita la
  forma de árbol. Está compuesta por Nodos y conexiones a
    hojas llamadas “hijos” que a su vez tienen “hijos” y así
                     consecutivamente.

Función: Organizar la información de manera que facilite su
entendimiento, análisis y funcionamiento. Es utilizada para modelos de
Bases de Datos, Administración de archivos, operaciones de recorridos y
caminos simples, inteligencia artificial, entre otras operaciones.

Tipos: Entre los tipos de árboles existen los árboles binarios, AVL, Rojo-
Negro, AA, B,B+ o Eneários. De aquí se origina la base de los grafos.
RECORRIDOS DE UN ÁRBOL

    Se llama recorrido de un árbol al proceso que permite
 acceder una sola vez a cada uno de los nodos del árbol para
           examinar el conjunto completo de nodos.

Recorrido en Profundidad: el proceso exige alcanzar las profundidades de
un camino desde la raíz hacia el descendiente mas lejano del primer hijo,
antes de proseguir con el segundo.

Recorrido en Anchura: el proceso se realiza horizontalmente desde la raíz
a todos su hijos antes de pasar con la descendencia de alguno de ellos.
COMO RECORRER UN ÁRBOL
Al visitar los nodos de un árbol existen algunas maneras útiles en las que se pueden
ordenar sistemáticamente los nodos de un árbol.

Los ordenamientos más importantes son llamados: pre-orden, post-orden y en-
orden y se definen recursivamente como sigue:

Si un árbol T es nulo, entonces, la lista vacía es el listado pre-orden, post-orden y en-
orden del árbol T.

Si T consiste de un sólo nodo n, entonces, n es el listado pre-orden, post-orden y en-
orden del árbol T.

Los algoritmos de recorrido de un árbol binario presentan tres tipos de actividades
comunes:

• visitar el nodo raíz
• recorrer el subárbol izquierdo
• recorrer el subárbol derecho

Estas tres acciones llevadas a cabo en distinto orden proporcionan los distintos
recorridos del árbol.
Recorrido en PRE-ORDEN:
• Visitar el raíz
• Recorrer el subárbol izquierdo en pre-orden
• Recorrer el subárbol derecho en pre-orden

                              CÓDIGO:

void preorden(tArbol *a)
{
        if (a != NULL)
        {
                 tratar(a); //Realiza una operación en nodo
                 preorden(a->hIzquierdo);
                 preorden(a->hDerecho);
        }
}
Recorrido EN-ORDEN
• Recorrer el subárbol izquierdo en en-orden
• Visitar el raíz
• Recorrer el subárbol derecho en en-orden

                              CÓDIGO:

void inorden(tArbol *a)
{
        if (a != NULL)
        {
                 inorden(a->hIzquierdo);
                 tratar(a); //Realiza una operación en nodo
        inorden(a->hDerecho);
        }
}
Recorrido en POST-ORDEN
• Recorrer el subárbol izquierdo en post-orden
• Recorrer el subárbol derecho en post-orden
• Visitar el raíz

                             CÓDIGO:

void postorden(tArbol *a)
{
       if (a != NULL)
       {
                postorden(a->hIzquiedo);
                postorden(a->hDerecho);
                tratar(a); //Realiza una operación en nodo
       }
}
RECORRIDOS DEL ÁRBOL GRÁFICAMENTE




        1                    2                    3




2              3      1              3     1              2



Recorrido Preorden    Recorrido Inorden   Recorrido Postorden
   Raiz-IZQ-DER         IZQ-Raíz-DER         IZQ-DER-Raíz
Recorreremos el Árbol Siguiente:




Recorrido Pre Orden (RID)
El recorrido en Pre Orden del árbol es el siguiente: 15, 6, 4, 10, 20, 17, 22

Recorrido En Orden(IRD)
El recorrido en En Orden del árbol es el siguiente: 4, 6, 10, 15, 17, 20, 22

Recorrido Post Orden(IDR)
El recorrido en Post Orden del árbol es el siguiente: 4, 10, 6, 17, 22, 20, 15
Árbol N-ario
Un árbol n-ario es una estructura recursiva, en la cual cada elemento tiene un número
cualquiera de árboles n-arios asociados. En la siguiente figura se muestra el
formalismo gráfico escogido para representar este objeto abstracto. En él se hace
explícita la raíz, y cada uno de los n subárboles que tiene asociados. Un árbol vacío se
representa con el símbolo .




Los recorridos principales son:
inorden( a ) = inorden( a1 ), e, inorden( a2 ), ..., inorden( an )
preorden( a ) = e, preorden( a1 ), ..., preorden( an )
postorden( a ) = postorden( a1 ), ...., postorden( an ), e
Ejemplo Árbol N-ario

Para el árbol n-ario de la figura:




El orden del árbol es 4
El orden del elemento a es 3
preorden = a, b, c, e, f, d, g, j, k, l, m, h, i
inorden = b, a, e, c, f, j, g, k, l, m, d, h, i
postorden = b, e, f, c, j, k, l, m, g, h, i, d, a
Niveles = a, b, c, d, e, f, g, h, i, j, k, l, m
Altura = 4
Peso = 13
Los hijos de g son los elementos j, k, l, m
El ancestro común más próximo de k y h es d
EJEMPLO CASO REAL
Considere el caso de una fábrica, en la cual se quiere hacer el
modelaje de un automóvil en términos de sus componentes: cada
pieza debe estar relacionada con todos los elementos que la
constituyen, como se sugiere en la siguiente figura vemos que es
insuficiente un árbol binario para manejar este tipo de estructuras,
ya que el número de hijos no se puede restringir a dos.
ARBOLES 2-3
Son un tipo de árbol balanceado por altura (height balanced). Se
define como un árbol en dónde todos los nodos no-terminales
tienen 2 ó 3 descendientes y todos los nodos hoja tienen la
misma longitud (path length) o distancia desde la raíz.

Fueran introducidos con el objeto de mejorar el tiempo de
acceso en estructuras de datos manejadas en memoria
secundaria, en las cuales el número de consultas a un registro
influye de manera determinante en el tiempo de respuesta de la
operación.

La estructura de árbol 2-3 exige que el crecimiento no se haga a
nivel de las hojas (aunque la inserción sigue siendo en las hojas),
sino que a nivel de la raíz, ya que todas las hojas se deben
mantener siempre en el mismo nivel. El proceso global de
inserción comienza por localizar la hoja en la cual se debe
agregar el elemento.
PROPIEDADES 2-3
Un árbol 2-3 permite que un nodo tenga dos o tres hijos. Esta
característica le permite conservar el balanceo tras insertar o
borrar elementos, por lo que el algoritmo de búsqueda es casi
tan rápido como en un árbol de búsqueda de altura mínima. Por
otro lado, es mucho más fácil de mantenerlo.

En un árbol 2-3, los nodos internos han de tener 2 ò 3 hijos y
todas las hojas han de estar al mismo nivel. De forma recursiva
se pueden definir como:
A es un árbol 2-3 de altura h si:
•A es un árbol vacío (un árbol 2-3 de altura 0), o
•A es de la forma (r, I, D), donde r es un nodo e I y D son árboles
2-3 de altura h − 1, o
•A es de la forma (r, I, C, D), donde r es un nodo e I, C y D son
árboles 2-3 de altura h-1.
PROPIEDADES 2-3
Para usar estos árboles de forma eficiente en las búsquedas, hay
que introducir un orden entre los elementos por lo que un árbol
A es un árbol 2-3 de búsqueda de altura h si:
•Todos los elementos de I son menores que r y todos los
elementos de D son mayores que r.

•A es de la forma (r1, r2,I, C, D), donde r1 _ r2, I, Ac y D son
árboles 2-3 de búsqueda de altura h-1 y todos los elementos de I
son menores que r1, todos los elementos de C son mayores que
r1 y menores que r2 y todos los elementos de D son mayores
que r2.

•Esta definición implica que el número de hijos de un nodo es
siempre uno más que el número de elementos que contiene ese
nodo. En el caso de las hojas se permiten uno o dos elementos
en el nodo. Desde ahora nos referiremos a los árboles 2-3 de
búsqueda simplemente como árboles 2-3.
ESPECIFICACIÓN
La especificación del tipo ARBOL23 es muy similar a la de otros
árboles con una diferencia que es la definición de tres
operaciones generadoras en lugar de dos. Árbol Vacío es la
operación que genera un árbol sin elementos, como en los otros
tipos y hay una operación, consArbol, que genera un árbol 2-3
cuya raíz tiene un solo elemento y dos hijos y otra, cons3Arbol,
que genera un árbol 2-3 cuya raíz tiene dos elementos y tres
hijos. Estas dos últimas operaciones son los generadores que se
mantienen ocultos al usuario.
EJEMPLOS
A continuación se ofrecen ejemplos concretos para ilustrar el
mecanismo de inserción:
Ejemplo de eliminar :



Vamos a eliminar 65 de este árbol,
65 es un nodo interno.




65 se encuentra ahora en una
ubicación no válida, lo vamos a
eliminar
Ahora haremos lo mismo
para eliminar 70 que es un
nodo interno




70 se encuentra ahora en
una ubicación no válida,
porque vamos a eliminarlo
La eliminación de la hoja
nos deja con un 2-3 árbol
no valido




Combinar para fijar los
nodos del árbol
Ahora eliminamos, 100 es hoja ya se puede quitar
BIBLIOGRAFÍA

•WIKIPEDIA. Árbol 2-3. {En línea}. http://es.wikipedia.org/wiki/%C3%81rbol_2-
3 5 de Enero de 2012.
•CUEVAS FLORES, Ricardo. Estructura y Organización de Datos. {En línea}.
http://estructuradedatos09111005.blogspot.com/2011/11/arboles.html. 9 de
Noviembre de 2011.
•VILLALOBOS, Jorge. Diseño y Manejo de Estructuras de Datos en C. McGraw-
Hill. Enero 1996.

Más contenido relacionado

La actualidad más candente

Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discretaJunior Soto
 
3 estructuras no lineales estáticas y dinámicas
3  estructuras no lineales estáticas y dinámicas3  estructuras no lineales estáticas y dinámicas
3 estructuras no lineales estáticas y dinámicasEliezer Cordova
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
esto es de transformacion del modelo relacional
esto es  de transformacion del modelo relacionalesto es  de transformacion del modelo relacional
esto es de transformacion del modelo relacionalBrahyan Marquez
 
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.Bryan Aguilar Yaguana
 
Estructuras lineales unidad 3
Estructuras lineales unidad 3Estructuras lineales unidad 3
Estructuras lineales unidad 3eliezerbs
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacionjenny
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltosJansel M
 
NORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdfNORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdfSumica1
 

La actualidad más candente (20)

Arboles mate discreta
Arboles mate discretaArboles mate discreta
Arboles mate discreta
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
3 estructuras no lineales estáticas y dinámicas
3  estructuras no lineales estáticas y dinámicas3  estructuras no lineales estáticas y dinámicas
3 estructuras no lineales estáticas y dinámicas
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Mètodos de Ordenaciòn y bùsqueda
Mètodos de Ordenaciòn y bùsquedaMètodos de Ordenaciòn y bùsqueda
Mètodos de Ordenaciòn y bùsqueda
 
esto es de transformacion del modelo relacional
esto es  de transformacion del modelo relacionalesto es  de transformacion del modelo relacional
esto es de transformacion del modelo relacional
 
Busquedas en arboles
Busquedas en arbolesBusquedas en arboles
Busquedas en arboles
 
Pilas y colas
Pilas y colasPilas y colas
Pilas y colas
 
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
 
Estructuras lineales unidad 3
Estructuras lineales unidad 3Estructuras lineales unidad 3
Estructuras lineales unidad 3
 
Arboles
ArbolesArboles
Arboles
 
Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Colas
ColasColas
Colas
 
Arboles presentacion
Arboles presentacionArboles presentacion
Arboles presentacion
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Arboles con raiz
Arboles con raizArboles con raiz
Arboles con raiz
 
Arreglos de registros
Arreglos de registros Arreglos de registros
Arreglos de registros
 
8 tipos variables constantes
8 tipos variables constantes8 tipos variables constantes
8 tipos variables constantes
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
NORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdfNORMALIZACIÓN DE BASES DE DATOS.pdf
NORMALIZACIÓN DE BASES DE DATOS.pdf
 

Similar a Árboles, recorridos y eliminación en árboles 2-3

Similar a Árboles, recorridos y eliminación en árboles 2-3 (20)

Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5Estructura de datos unidad 4 y 5
Estructura de datos unidad 4 y 5
 
Arboles TDAS
Arboles TDASArboles TDAS
Arboles TDAS
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Arboles
ArbolesArboles
Arboles
 
ARBOLES
ARBOLESARBOLES
ARBOLES
 
Arboles02
Arboles02Arboles02
Arboles02
 
Estructura de Datos - Unidad IV: Estructuras no Lineales
Estructura de Datos - Unidad IV: Estructuras no LinealesEstructura de Datos - Unidad IV: Estructuras no Lineales
Estructura de Datos - Unidad IV: Estructuras no Lineales
 
Declarar Arboles. Operaciones. Ejemplospdf
Declarar Arboles. Operaciones. EjemplospdfDeclarar Arboles. Operaciones. Ejemplospdf
Declarar Arboles. Operaciones. Ejemplospdf
 
Estructura de dato unidad 4
Estructura de dato unidad 4Estructura de dato unidad 4
Estructura de dato unidad 4
 
04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles
 
2 arboles
2 arboles2 arboles
2 arboles
 
Programación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenadosProgramación 3: árboles binarios y ordenados
Programación 3: árboles binarios y ordenados
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
áRboles binarios
áRboles binariosáRboles binarios
áRboles binarios
 
Arboles
ArbolesArboles
Arboles
 
12. Arboles.ppt
12. Arboles.ppt12. Arboles.ppt
12. Arboles.ppt
 
Arboles
Arboles Arboles
Arboles
 
Arboles ppt
Arboles pptArboles ppt
Arboles ppt
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 

Último

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxRogerPrieto3
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Último (15)

CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Herramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptxHerramientas de corte de alta velocidad.pptx
Herramientas de corte de alta velocidad.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Árboles, recorridos y eliminación en árboles 2-3

  • 1. PROGRAMACIÓN LÓGICA Y FUNCIONAL NILTON SANCHEZ RAFAEL REYES FUNDACIÓN UNIVERSITARIA SAN MARTIN INGENIERIA DE SISTEMAS
  • 2. ÁRBOLES Es una extensión de una estructura de datos que imita la forma de árbol. Está compuesta por Nodos y conexiones a hojas llamadas “hijos” que a su vez tienen “hijos” y así consecutivamente. Función: Organizar la información de manera que facilite su entendimiento, análisis y funcionamiento. Es utilizada para modelos de Bases de Datos, Administración de archivos, operaciones de recorridos y caminos simples, inteligencia artificial, entre otras operaciones. Tipos: Entre los tipos de árboles existen los árboles binarios, AVL, Rojo- Negro, AA, B,B+ o Eneários. De aquí se origina la base de los grafos.
  • 3. RECORRIDOS DE UN ÁRBOL Se llama recorrido de un árbol al proceso que permite acceder una sola vez a cada uno de los nodos del árbol para examinar el conjunto completo de nodos. Recorrido en Profundidad: el proceso exige alcanzar las profundidades de un camino desde la raíz hacia el descendiente mas lejano del primer hijo, antes de proseguir con el segundo. Recorrido en Anchura: el proceso se realiza horizontalmente desde la raíz a todos su hijos antes de pasar con la descendencia de alguno de ellos.
  • 4. COMO RECORRER UN ÁRBOL Al visitar los nodos de un árbol existen algunas maneras útiles en las que se pueden ordenar sistemáticamente los nodos de un árbol. Los ordenamientos más importantes son llamados: pre-orden, post-orden y en- orden y se definen recursivamente como sigue: Si un árbol T es nulo, entonces, la lista vacía es el listado pre-orden, post-orden y en- orden del árbol T. Si T consiste de un sólo nodo n, entonces, n es el listado pre-orden, post-orden y en- orden del árbol T. Los algoritmos de recorrido de un árbol binario presentan tres tipos de actividades comunes: • visitar el nodo raíz • recorrer el subárbol izquierdo • recorrer el subárbol derecho Estas tres acciones llevadas a cabo en distinto orden proporcionan los distintos recorridos del árbol.
  • 5. Recorrido en PRE-ORDEN: • Visitar el raíz • Recorrer el subárbol izquierdo en pre-orden • Recorrer el subárbol derecho en pre-orden CÓDIGO: void preorden(tArbol *a) { if (a != NULL) { tratar(a); //Realiza una operación en nodo preorden(a->hIzquierdo); preorden(a->hDerecho); } }
  • 6. Recorrido EN-ORDEN • Recorrer el subárbol izquierdo en en-orden • Visitar el raíz • Recorrer el subárbol derecho en en-orden CÓDIGO: void inorden(tArbol *a) { if (a != NULL) { inorden(a->hIzquierdo); tratar(a); //Realiza una operación en nodo inorden(a->hDerecho); } }
  • 7. Recorrido en POST-ORDEN • Recorrer el subárbol izquierdo en post-orden • Recorrer el subárbol derecho en post-orden • Visitar el raíz CÓDIGO: void postorden(tArbol *a) { if (a != NULL) { postorden(a->hIzquiedo); postorden(a->hDerecho); tratar(a); //Realiza una operación en nodo } }
  • 8. RECORRIDOS DEL ÁRBOL GRÁFICAMENTE 1 2 3 2 3 1 3 1 2 Recorrido Preorden Recorrido Inorden Recorrido Postorden Raiz-IZQ-DER IZQ-Raíz-DER IZQ-DER-Raíz
  • 9. Recorreremos el Árbol Siguiente: Recorrido Pre Orden (RID) El recorrido en Pre Orden del árbol es el siguiente: 15, 6, 4, 10, 20, 17, 22 Recorrido En Orden(IRD) El recorrido en En Orden del árbol es el siguiente: 4, 6, 10, 15, 17, 20, 22 Recorrido Post Orden(IDR) El recorrido en Post Orden del árbol es el siguiente: 4, 10, 6, 17, 22, 20, 15
  • 10. Árbol N-ario Un árbol n-ario es una estructura recursiva, en la cual cada elemento tiene un número cualquiera de árboles n-arios asociados. En la siguiente figura se muestra el formalismo gráfico escogido para representar este objeto abstracto. En él se hace explícita la raíz, y cada uno de los n subárboles que tiene asociados. Un árbol vacío se representa con el símbolo . Los recorridos principales son: inorden( a ) = inorden( a1 ), e, inorden( a2 ), ..., inorden( an ) preorden( a ) = e, preorden( a1 ), ..., preorden( an ) postorden( a ) = postorden( a1 ), ...., postorden( an ), e
  • 11. Ejemplo Árbol N-ario Para el árbol n-ario de la figura: El orden del árbol es 4 El orden del elemento a es 3 preorden = a, b, c, e, f, d, g, j, k, l, m, h, i inorden = b, a, e, c, f, j, g, k, l, m, d, h, i postorden = b, e, f, c, j, k, l, m, g, h, i, d, a Niveles = a, b, c, d, e, f, g, h, i, j, k, l, m Altura = 4 Peso = 13 Los hijos de g son los elementos j, k, l, m El ancestro común más próximo de k y h es d
  • 12. EJEMPLO CASO REAL Considere el caso de una fábrica, en la cual se quiere hacer el modelaje de un automóvil en términos de sus componentes: cada pieza debe estar relacionada con todos los elementos que la constituyen, como se sugiere en la siguiente figura vemos que es insuficiente un árbol binario para manejar este tipo de estructuras, ya que el número de hijos no se puede restringir a dos.
  • 13. ARBOLES 2-3 Son un tipo de árbol balanceado por altura (height balanced). Se define como un árbol en dónde todos los nodos no-terminales tienen 2 ó 3 descendientes y todos los nodos hoja tienen la misma longitud (path length) o distancia desde la raíz. Fueran introducidos con el objeto de mejorar el tiempo de acceso en estructuras de datos manejadas en memoria secundaria, en las cuales el número de consultas a un registro influye de manera determinante en el tiempo de respuesta de la operación. La estructura de árbol 2-3 exige que el crecimiento no se haga a nivel de las hojas (aunque la inserción sigue siendo en las hojas), sino que a nivel de la raíz, ya que todas las hojas se deben mantener siempre en el mismo nivel. El proceso global de inserción comienza por localizar la hoja en la cual se debe agregar el elemento.
  • 14. PROPIEDADES 2-3 Un árbol 2-3 permite que un nodo tenga dos o tres hijos. Esta característica le permite conservar el balanceo tras insertar o borrar elementos, por lo que el algoritmo de búsqueda es casi tan rápido como en un árbol de búsqueda de altura mínima. Por otro lado, es mucho más fácil de mantenerlo. En un árbol 2-3, los nodos internos han de tener 2 ò 3 hijos y todas las hojas han de estar al mismo nivel. De forma recursiva se pueden definir como: A es un árbol 2-3 de altura h si: •A es un árbol vacío (un árbol 2-3 de altura 0), o •A es de la forma (r, I, D), donde r es un nodo e I y D son árboles 2-3 de altura h − 1, o •A es de la forma (r, I, C, D), donde r es un nodo e I, C y D son árboles 2-3 de altura h-1.
  • 15. PROPIEDADES 2-3 Para usar estos árboles de forma eficiente en las búsquedas, hay que introducir un orden entre los elementos por lo que un árbol A es un árbol 2-3 de búsqueda de altura h si: •Todos los elementos de I son menores que r y todos los elementos de D son mayores que r. •A es de la forma (r1, r2,I, C, D), donde r1 _ r2, I, Ac y D son árboles 2-3 de búsqueda de altura h-1 y todos los elementos de I son menores que r1, todos los elementos de C son mayores que r1 y menores que r2 y todos los elementos de D son mayores que r2. •Esta definición implica que el número de hijos de un nodo es siempre uno más que el número de elementos que contiene ese nodo. En el caso de las hojas se permiten uno o dos elementos en el nodo. Desde ahora nos referiremos a los árboles 2-3 de búsqueda simplemente como árboles 2-3.
  • 16. ESPECIFICACIÓN La especificación del tipo ARBOL23 es muy similar a la de otros árboles con una diferencia que es la definición de tres operaciones generadoras en lugar de dos. Árbol Vacío es la operación que genera un árbol sin elementos, como en los otros tipos y hay una operación, consArbol, que genera un árbol 2-3 cuya raíz tiene un solo elemento y dos hijos y otra, cons3Arbol, que genera un árbol 2-3 cuya raíz tiene dos elementos y tres hijos. Estas dos últimas operaciones son los generadores que se mantienen ocultos al usuario.
  • 17. EJEMPLOS A continuación se ofrecen ejemplos concretos para ilustrar el mecanismo de inserción:
  • 18. Ejemplo de eliminar : Vamos a eliminar 65 de este árbol, 65 es un nodo interno. 65 se encuentra ahora en una ubicación no válida, lo vamos a eliminar
  • 19. Ahora haremos lo mismo para eliminar 70 que es un nodo interno 70 se encuentra ahora en una ubicación no válida, porque vamos a eliminarlo
  • 20. La eliminación de la hoja nos deja con un 2-3 árbol no valido Combinar para fijar los nodos del árbol
  • 21. Ahora eliminamos, 100 es hoja ya se puede quitar
  • 22. BIBLIOGRAFÍA •WIKIPEDIA. Árbol 2-3. {En línea}. http://es.wikipedia.org/wiki/%C3%81rbol_2- 3 5 de Enero de 2012. •CUEVAS FLORES, Ricardo. Estructura y Organización de Datos. {En línea}. http://estructuradedatos09111005.blogspot.com/2011/11/arboles.html. 9 de Noviembre de 2011. •VILLALOBOS, Jorge. Diseño y Manejo de Estructuras de Datos en C. McGraw- Hill. Enero 1996.