Académique Documents
Professionnel Documents
Culture Documents
Unidad 04
Árboles BINARIOS
Árboles Binarios
Operaciones Básicas
Determinar su altura.
Determinar su número de elementos.
Hacer una copia.
Visualizar el árbol Binario en pantalla o en impresora
Determinar si dos árboles binarios son idénticos
Borrar (Eliminar el árbol)
Si es un árbol de expresión, evaluar la expresión
Árboles Binarios - Estructura
Un árbol binario se construye con nodos. Cada nodo debe
contener el campo dato (datos a almacenar) y dos campos de
enlace, un al subárbol Izquierdo (Izquierdo,izdo) y otro al
subárbol derecho (derecho, dcho). El valor null indica un
árbol o subárbol vacío.
Null A
Null B
B C
Null C
a * (b + c) + d
d
*
*
a
b c
+ *
x y a b
Árbol de expresión ( x + y) * (a + b)
Árbol de Expresión
* -
x a b
-
y z
Árbol de expresión ( x * (y - z) ) + (a - b)
Árbol de Expresión
+
* *
a *
x / c
*
b -
y -
a
+
+
z
c d x y
a) b) c)
a) x * y / (-z)
b) a + b * (-(c + d))
c) a * (x + y ) * c
a) Y * X / (A + B) *C
b) X * Y / A + B * C
Árbol de Expresión
Los árboles de expresiones se utilizan en las computadoras para
evaluar expresiones usadas en programas. El algoritmo más
sencillo para construir un árbol de expresión es aquel que lee una
expresión completa que contiene paréntesis. Una expresión con
paréntesis es aquella en que :
1) La prioridad se determina sólo por paréntesis.
2) La expresión completa se sitúa entre paréntesis.
A fin de ver la prioridad en las expresiones, considere la expresión
a * c + e / g – (b + d)
Los operadores con prioridad más alta son * y /, es decir:
(a * c) + (e / g) – ( b + d)
Los operadores que siguen en orden de prioridad son + y -, que se
evalúan de izquierda a derecha. Por consiguiente, se puede
escribir: ((a * c) + (e / g)) – ( b + d)
Árbol de Expresión
Por último, la expresión completa entre paréntesis será:
(((a * c) + (e / g)) – ( b + d))
Árbol de Expresión
Algoritmo para la construcción de un árbol de expresión puede
expresarse en los siguientes pasos:
1) La primera vez que se encuentre un paréntesis a izquierda crear un
nodo que será el nodo raíz. Se llama a éste nodo actual y se sitúa
en una pila.
2) Cada vez que se encuentre un nuevo paréntesis a izquierda, crear
un nuevo nodo. Si el nodo actual no tiene un hijo izquierdo, hacer
el nuevo nodo el hijo izquierdo; en caso contrario, hacerlo el hijo
derecho. Hacer el nuevo nodo actual y ponerlo en la pila
3) Cuando se encuentre un operando, crear un nuevo nodo y asignar
el operando a su campo de datos. Si el nodo actual no tiene un
hijo izquierdo, hacer el nuevo nodo el hijo izquierdo; en caso
contrario, hacerlo el hijo derecho.
4) Cuando se encuentre un operador, sacar el nodo cabeza de la pila y
situar el operador en el campo dato del nodo.
5) Ignorar el paréntesis derecho y los blancos.
Árbol de Expresión
+
+
+ d
* /
+ c
a b c d
a b
+ *
- + + *
a x y b c d
1
B C
2 5
D E F G
3 4 6 7
4
B C
2 6
D E F G
1 3 5 7
7
B C
3 6
D E F G
1 2 4 5
+
+ *
+ d
* /
- + + *
+ c
a b c a
a b a x y b c d
a) b) c)