Materia: Algoritmos y Estructura de Datos
Maestra: Adriana Hernández
Alumnos:
Ignacio Noriega
Manuel Bernal
Julio Catalán
Carlos López
 Un árbol binario es una estructura de datos de tipo árbol
en donde cada uno de los nodos del árbol puede tener
0, 1, ó 2 subárboles llamados de acuerdo a su caso como:
• Si el nodo raíz tiene 0 relaciones se llama hoja.
• Si el nodo raíz tiene 1 relación a la izquierda, el segundo
elemento de la relación es el subárbol izquierdo.
• Si el nodo raíz tiene 1 relación a la derecha, el segundo
elemento de la relación es el subárbol derecho.
• Búsqueda
• Insertar
• Recorrer (De la cual posteriormente se hablara)
• Eliminación o Supresión
 Supongamos que tenemos un árbol A y lo queremos convertir a un árbol binario B.
 1.- Convertir a A como la Raíz de nuestro nuevo Árbol Binario, luego enlazo el nodo
raíz con el camino que conecta al nodo mas a la izquierda.
 2.- Enlazar ese nodo con los restantes descendientes del nodo raíz en su camino con lo
que se forma el nivel uno.
 3.- Repetir los dos pasos anteriores con los nodos del nivel dos enlazando siempre en
un mismo camino todos los hermanos (descendientes del mismo nodo).
 4.- Repetir los pasos hasta llegar al nivel mas alto.
 5.- Girar el árbol resultante 45° para diferenciar al izquierdo del derecho
 El recorrido de árboles refiere al proceso de visitar de una
manera sistemática, exactamente una vez, cada nodo en una
estructura de datos de árbol.
 Tales recorridos están clasificados por el orden en el cual son
visitados los nodos. Los siguientes algoritmos son descritos para un
árbol binario, pero también pueden ser generalizados a otros árboles.
 (raíz, izquierdo, derecho) Para recorrer un árbol no vacío en pre
orden, hay que realizar las siguientes operaciones recursivamente en
cada nodo, comenzando con el nodo de raíz:
1.- Visite la raíz
2.- Atraviese el sub-árbol izquierdo
3.- Atreviese el sub árbol derecho
 (izquierdo, raíz, derecho). Para recorrer un árbol binario no vacío
en in orden (simétrico), hay que realizar las siguientes operaciones
recursivamente en cada nodo:
1.- Atraviese el sub árbol izquierdo
2.- Visite la raíz
3.- Atraviese el sub árbol derecho
 (izquierdo, derecho, raíz). Para recorrer un árbol binario no vacío
en post orden, hay que realizar las siguientes operaciones
recursivamente en cada nodo:
1.- Atraviese el sub árbol izquierdo
2.- Atraviese el sub árbol derecho
3.- Visite la raíz
En general, la diferencia entre pre orden, in orden y post orden es cuándo se
recorre la raíz. En los tres, se recorre primero el sub-árbol izquierdo y luego el
derecho
 En pre orden, la raíz se recorre antes que los recorridos de los subárboles
izquierdo y derecho
 En in orden, la raíz se recorre entre los recorridos de los árboles izquierdo y
derecho
 En post orden, la raíz se recorre después de los recorridos por el subárbol
izquierdo y el derecho
 Preorden (nodo)
si nodo = nulo entonces retorna
imprime nodo.valor
preorden(nodo.izquierda)
preorden(nodo.derecha)
 Inorden (nodo)
si nodo = nulo entonces retorna
inorden(nodo.izquierda)
imprime nodo.valor
inorden(nodo.derecha)
 Postorden(nodo)
si nodo = nulo entonces retorna
postorden(nodo.izquierda)
postorden(nodo.derecha)
imprime nodo.valor
 RECORRIDO IN ORDEN
Es particularmente común usar un recorrido in orden en un árbol binario de búsqueda
porque éste retornará valores en el orden del conjunto subyacente, de acuerdo al
comparador que configura el árbol de búsqueda binaria (de aquí el nombre).
Para ver porqué éste es el caso, note que si n es un nodo en un árbol binario de
búsqueda, entonces todo n en el subárbol izquierdo es menor que n, y todo n en el
subárbol derecho es mayor o igual a n.
Por lo tanto, si visitamos el subárbol izquierdo en orden, usando una llamada recursiva, y
entonces visitamos a n, y después visitamos el subárbol derecho en orden, nosotros hemos
visitado completamente el subárbol con raíz en n en orden.
 RECORRIDO PRE ORDEN
Recorriendo un árbol en pre orden mientras se está insertando los valores en un
nuevo árbol es una manera común de hacer una copia completa de un árbol
binario de búsqueda.
También se pueden usar los recorridos pre orden para conseguir una expresión
prefijo (notación polaca) de árboles de expresión.
Recorra el árbol de expresión en pre orden. Para calcular el valor de tal expresión.
Cada vez que se encuentre un operador, se sustituyen los dos símbolos superiores
del stack por el resultado de aplicar al operador a esos elementos.
Arboles binarios
Arboles binarios
Arboles binarios
Arboles binarios

Arboles binarios

  • 1.
    Materia: Algoritmos yEstructura de Datos Maestra: Adriana Hernández Alumnos: Ignacio Noriega Manuel Bernal Julio Catalán Carlos López
  • 2.
     Un árbolbinario es una estructura de datos de tipo árbol en donde cada uno de los nodos del árbol puede tener 0, 1, ó 2 subárboles llamados de acuerdo a su caso como: • Si el nodo raíz tiene 0 relaciones se llama hoja. • Si el nodo raíz tiene 1 relación a la izquierda, el segundo elemento de la relación es el subárbol izquierdo. • Si el nodo raíz tiene 1 relación a la derecha, el segundo elemento de la relación es el subárbol derecho.
  • 4.
    • Búsqueda • Insertar •Recorrer (De la cual posteriormente se hablara) • Eliminación o Supresión
  • 9.
     Supongamos quetenemos un árbol A y lo queremos convertir a un árbol binario B.  1.- Convertir a A como la Raíz de nuestro nuevo Árbol Binario, luego enlazo el nodo raíz con el camino que conecta al nodo mas a la izquierda.  2.- Enlazar ese nodo con los restantes descendientes del nodo raíz en su camino con lo que se forma el nivel uno.  3.- Repetir los dos pasos anteriores con los nodos del nivel dos enlazando siempre en un mismo camino todos los hermanos (descendientes del mismo nodo).  4.- Repetir los pasos hasta llegar al nivel mas alto.  5.- Girar el árbol resultante 45° para diferenciar al izquierdo del derecho
  • 11.
     El recorridode árboles refiere al proceso de visitar de una manera sistemática, exactamente una vez, cada nodo en una estructura de datos de árbol.  Tales recorridos están clasificados por el orden en el cual son visitados los nodos. Los siguientes algoritmos son descritos para un árbol binario, pero también pueden ser generalizados a otros árboles.
  • 12.
     (raíz, izquierdo,derecho) Para recorrer un árbol no vacío en pre orden, hay que realizar las siguientes operaciones recursivamente en cada nodo, comenzando con el nodo de raíz: 1.- Visite la raíz 2.- Atraviese el sub-árbol izquierdo 3.- Atreviese el sub árbol derecho
  • 13.
     (izquierdo, raíz,derecho). Para recorrer un árbol binario no vacío en in orden (simétrico), hay que realizar las siguientes operaciones recursivamente en cada nodo: 1.- Atraviese el sub árbol izquierdo 2.- Visite la raíz 3.- Atraviese el sub árbol derecho
  • 14.
     (izquierdo, derecho,raíz). Para recorrer un árbol binario no vacío en post orden, hay que realizar las siguientes operaciones recursivamente en cada nodo: 1.- Atraviese el sub árbol izquierdo 2.- Atraviese el sub árbol derecho 3.- Visite la raíz
  • 15.
    En general, ladiferencia entre pre orden, in orden y post orden es cuándo se recorre la raíz. En los tres, se recorre primero el sub-árbol izquierdo y luego el derecho  En pre orden, la raíz se recorre antes que los recorridos de los subárboles izquierdo y derecho  En in orden, la raíz se recorre entre los recorridos de los árboles izquierdo y derecho  En post orden, la raíz se recorre después de los recorridos por el subárbol izquierdo y el derecho
  • 16.
     Preorden (nodo) sinodo = nulo entonces retorna imprime nodo.valor preorden(nodo.izquierda) preorden(nodo.derecha)  Inorden (nodo) si nodo = nulo entonces retorna inorden(nodo.izquierda) imprime nodo.valor inorden(nodo.derecha)  Postorden(nodo) si nodo = nulo entonces retorna postorden(nodo.izquierda) postorden(nodo.derecha) imprime nodo.valor
  • 17.
     RECORRIDO INORDEN Es particularmente común usar un recorrido in orden en un árbol binario de búsqueda porque éste retornará valores en el orden del conjunto subyacente, de acuerdo al comparador que configura el árbol de búsqueda binaria (de aquí el nombre). Para ver porqué éste es el caso, note que si n es un nodo en un árbol binario de búsqueda, entonces todo n en el subárbol izquierdo es menor que n, y todo n en el subárbol derecho es mayor o igual a n. Por lo tanto, si visitamos el subárbol izquierdo en orden, usando una llamada recursiva, y entonces visitamos a n, y después visitamos el subárbol derecho en orden, nosotros hemos visitado completamente el subárbol con raíz en n en orden.
  • 18.
     RECORRIDO PREORDEN Recorriendo un árbol en pre orden mientras se está insertando los valores en un nuevo árbol es una manera común de hacer una copia completa de un árbol binario de búsqueda. También se pueden usar los recorridos pre orden para conseguir una expresión prefijo (notación polaca) de árboles de expresión. Recorra el árbol de expresión en pre orden. Para calcular el valor de tal expresión. Cada vez que se encuentre un operador, se sustituyen los dos símbolos superiores del stack por el resultado de aplicar al operador a esos elementos.