rbol de manera intuitiva como una estructura jerrquica. Variantes de los arboles sintcticos
En una estructura lineal resulta trivial establecer un criterio de
movimiento por la misma para acceder a los elementos, pero en un rbol esa tarea no resulta tan simple.No obstante, existen distintos mtodos tiles en que podemos sistemticamente recorrer todos los nodos de un rbol.Los tres recorridos ms importantes se denominan preorden,inorden y postorden aunque hay otros recorridos como es el recorrido por niveles. Variantes de los arboles sintcticos El listado en preorden es:
Si el rbol tiene un nico elemento, dicho
elemento es el listado en preorden.
Si el rbol tiene ms de un elemento,es
decir,una estructura como muestra la figura 2,el listado en preorden es listar el nodo raz seguido del listado en preorden de cada uno de los subrboles hijos de izquierda a derecha. Variantes de los arboles sintcticos
El listado en inorden es:
Si el rbol tiene un nico elemento, dicho
elemento es el listado en inorden.
Si el rbol tiene una estructura como muestra la
figura 2,el listado en inorden es listar el subrbol A1 en inorden,y listar el nodo raz seguido del listado en inorden de cada uno de los subrboles hijos de izquierda a derecha restantes. Variantes de los arboles sintcticos El listado en postorden es:
Si el rbol tiene un nico elemento, dicho
elemento es el listado en postorden. Si el rbol tiene una estructura como muestra la figura 2,el listado en postorden es listar en postorden cada uno de los subrboles hijos de izquierda a derecha seguidos por el nodo raz. Variantes de los arboles sintcticos ANALIZADOR ASCENDENTE
Construye el rbol sintctico desde las hojas hasta llegar a la
raz. Son analizadores del tipo reduccin-desplazamiento.
ANALIZADOR DESCENDENTE
Construyen el rbol sintctico de la sentencia a reconocer
desde el smbolo inicial, hasta llegar a los smbolos terminales, usando derivaciones ms hacia la izquierda. Cdigo de tres direcciones
Se llama de esa forma porque solo permite referenciar a 3
direcciones de memoria al mismo tiempo.
Es muy parecido a un lenguaje ensamblador para un
microprocesador que carece de registros y slo es capaz de trabajar con direcciones de memoria y literales.
Cada instruccin tiene como mximo tres operandos.
Cdigo de tres direcciones
Expresiones como (a+3)*(4-5)/2 no pueden ser operadas como
una sola instruccin.
Por lo tanto se debe descomponer la expresin en expresiones
ms sencillas y debemos auxiliarnos de variables temporales para almacenar los resultados mientras no los hayamos usado.
Para efectos de notacin, vamos a denotar las variables
temporales con una t_n donde n representa un subndice. Cdigo de tres direcciones
Para la expresin x=(a+3)*(4-5)/2 vamos a transformarla a cdigo de 3