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

Modelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datosModelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datos
Fernando Baculima
 
Data structure and its types
Data structure and its typesData structure and its types
Data structure and its types
Navtar Sidhu Brar
 
Arboles ppt
Arboles pptArboles ppt
Arboles ppt
INFOP
 
CÓDIGO PARA REALIZAR UN CORAZÓN EN LENGUAJE C.
CÓDIGO PARA REALIZAR UN CORAZÓN EN LENGUAJE C.CÓDIGO PARA REALIZAR UN CORAZÓN EN LENGUAJE C.
CÓDIGO PARA REALIZAR UN CORAZÓN EN LENGUAJE C.
rikymartinez22
 

La actualidad más candente (20)

Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Modelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datosModelo jerarquico y modelo de red de base de datos
Modelo jerarquico y modelo de red de base de datos
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Estructuras de datos lineales
Estructuras de datos linealesEstructuras de datos lineales
Estructuras de datos lineales
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de Grafos
 
Programación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operacionesProgramación 3: Grafos, representación y operaciones
Programación 3: Grafos, representación y operaciones
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Data structure and its types
Data structure and its typesData structure and its types
Data structure and its types
 
Arboles ppt
Arboles pptArboles ppt
Arboles ppt
 
Arboles
ArbolesArboles
Arboles
 
Jose manuel cuadro comparativo unidad 1
Jose manuel cuadro comparativo unidad 1Jose manuel cuadro comparativo unidad 1
Jose manuel cuadro comparativo unidad 1
 
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
 
Grafos
GrafosGrafos
Grafos
 
CÓDIGO PARA REALIZAR UN CORAZÓN EN LENGUAJE C.
CÓDIGO PARA REALIZAR UN CORAZÓN EN LENGUAJE C.CÓDIGO PARA REALIZAR UN CORAZÓN EN LENGUAJE C.
CÓDIGO PARA REALIZAR UN CORAZÓN EN LENGUAJE C.
 
Stack and queue
Stack and queueStack and queue
Stack and queue
 
Splay Tree Presentation Slides
Splay Tree Presentation SlidesSplay Tree Presentation Slides
Splay Tree Presentation Slides
 
introduction to Data Structure and classification
 introduction to Data Structure and classification introduction to Data Structure and classification
introduction to Data Structure and classification
 
Unit 2 linked list and queues
Unit 2   linked list and queuesUnit 2   linked list and queues
Unit 2 linked list and queues
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Data structure using c module 2
Data structure using c module 2Data structure using c module 2
Data structure using c module 2
 

Similar a Sustentacion arboles

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
pootalex
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
Vana Cigarroa
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
Vana Cigarroa
 
Estructura de dato unidad 4
Estructura de dato unidad 4Estructura de dato unidad 4
Estructura de dato unidad 4
lenithoz
 
04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles04 curso-prope-py ed-arboles
04 curso-prope-py ed-arboles
Aarón Jiménez
 

Similar a Sustentacion arboles (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
 
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
 
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
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (10)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 

Sustentacion arboles

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