Está en la página 1de 18

Recorridos y árboles de

expresión
José Alfonso Olaya
Matemáticas discretas
Árboles generadores mínimos
• El peso de un árbol generador es la suma de los pesos de los lados del
árbol. Por tanto, un árbol generador mínimo es aquel con peso
mínimo.
• El lado con mayor peso no está en el árbol generador mínimo
• Se construye un subgrafo en orden creciente de pesos, sin generar
circuitos.
Recorridos en un árbol binario
• Para acceder a los datos almacenados en un árbol, primero es necesario
recorrerlo o visitar todos los nodos.
• Existen diferentes métodos para que cada nodo del árbol sea visitado
una y solo una vez:
1. Recorrido en profundidad. se recorren todos los descendientes del
primer hijo, después se recorren todos los descendientes del segundo hijo,
y así sucesivamente.
2. Recorrido en anchura. En este tipo de recorrido se sigue un camino
“horizontal”, que empieza en la raíz, a través de todos sus hijos, luego se
recorren los hijos de sus hijos y así sucesivamente. En resumen, se recorre
por completo cada nivel, antes de comenzar con el siguiente nivel.
Recorrido en profundidad
• puede llevarse a cabo en tres formas distintas:

• recorrido en “preorden”,
• recorrido “enorden”
• recorrido “postorden”.
Recorrido en pre-orden
• El recorrido en pre-orden (nodo-izquierdo-
derecho o NID)
1. Visitar el nodo raíz (N)
2. Recorrer el árbol izquierdo (I)
3. Recorrer el subárbol derecho (D)

r-a-c-d-b-e-f
Recorrido en en-orden
• El recorrido en en-orden (izquierdo-nodo-
derecho o IND)
1. Recorrer el subárbol izquierdo (I)
2. Visitar el nodo raíz (N)
3. Recorrer el subárbol derecho (D)

c-a-d-r-e-b-f
Recorrido en post-orden
• El recorrido en post-orden (izquierdo-
derecho-nodo o IDN)
1. Recorrer el subárbol izquierdo (I)
2.Recorrer el subárbol derecho (D)
3. Visitar el nodo raíz (N)

c-d-a-e-f-b-r
Árboles de expresión
Secuencia de tokens (componentes de algún léxico que guardan
ciertas reglas establecidas), operando o un operador.
1. Cada hoja es un operando
2. Tanto el nodo raíz como los nodos rama son operadores
3. Los subárboles son sub-expresiones con la característica de que su
nodo raíz es un operador.
a *(b +c)+d *(e +f )
Dibujar el árbol binario que representa la expresión:
(x - y) * (z + w)
Algoritmo para construir árboles de
expresión
1. Al encontrar el primer paréntesis izquierdo se genera un nodo y se hace en el nodo raíz. Este
nodo se considera como nodo actual.
2. Cada que se encuentra un nuevo paréntesis izquierdo, se crea un nuevo nodo. De este modo,
si el nodo actual no tiene hijo izquierdo, el nodo recién creado se establece como hijo izquierdo,
en caso contrario se establece como hijo derecho y el nuevo nodo se establece como el nodo
actual.
3. Al encontrar un operando, se crea un nodo nuevo y se asigna el operando al correspondiente
campo de datos. Si el nodo actual no tiene hijo izquierdo, el nodo recién creado se establece
como hijo izquierdo, en caso contrario se establece como hijo derecho.
4. Al encontrar un operador, se debe sacar un puntero de la pila y colocar el operador en campo
de datos del nodo del puntero.
5. Se deben ignorar los paréntesis derechos y espacios en blanco.
Dibujar el árbol binario que representa la expresión:
a*(b+c)-(a-b)
Obtener la expresión dada por el árbol de expresión binario

También podría gustarte