Академический Документы
Профессиональный Документы
Культура Документы
CARRERA:
Ingeniería en Sistemas Computacionales
MATERIA:
Lenguajes y Autómatas II
SCD-1015SC6B
Tema:
Árboles de Expresión
Alumno:
Navarrete Lopez Leonardo - 16212051
Un árbol es una estructura jerárquica, organizada y dinámica aplicada sobre una colección
de objetos llamados nodos. Jerárquica porque los componentes están a distinto nivel.
Organizada porque importa la forma en que esté dispuesto el contenido. Dinámica porque
su forma, tamaño y contenido pueden variar durante la ejecución. Los árboles genealógicos
y los organigramas son ejemplos comunes de árboles. Entre otras cosas, los árboles son
útiles para analizar circuitos eléctricos, para representar la estructura de fórmulas
matemáticas, para organizar información en una base de datos, para representar el sistema
de archivos y para analizar la estructura sintáctica de un programa fuente en los
compiladores.
Árboles de Expresión
Una de las aplicaciones de árboles binarios son los llamados árboles de expresión. Una
expresión es una secuencia de componentes léxicos (tokens), que siguen reglas prescritas.
Un token puede ser un operador o un operando. Las propiedades de un árbol de expresión
son las siguientes: Cada hoja es un operando El nodo raíz y los nodos internos son
operadores Los subárboles son sub-expresiones en las que el nodo raíz es un operador La
siguiente figura muestra un ejemplo de un árbol de expresión de la expresión (a+b) * (c-d).
Sea A una expresión infija cualquiera, formada por operadores, paréntesis (izquierdos y
derechos) y operandos, también se usará una pila para los operadores. El procedimiento
seguido es el siguiente:
1
elementos de la pila de operadores hasta encontrar el correspondiente paréntesis izquierdo.
Cada elemento desapilado pasa a formar parte de la notación polaca, excepto los
paréntesis. Cuando no queden elementos en A, entonces se desafilan operadores de la pila,
hasta que ésta quede vacía.
- Operando
Si el árbol está vacío hacer raíz a nuevo, si no recorrer el árbol por la derecha hasta llegar a
un nodo con hojas, si la hoja izquierda, no está etiquetada colocar operando, si no colocarlo
en la hoja derecha.
- Operador
Si la raíz es un operando, insertar nuevo en ese nodo, y convertir el operando en el hijo
izquierdo, si no si hay un paréntesis abierto insertar nuevo en la última hoja derecha y
colocar operando como hijo izquierdo.
Si el carácter anterior es paréntesis izquierdo si el siguiente carácter es paréntesis derecho
si solo hay un operador en el árbol nuevo se convierte en raíz, si no se inserta en el último
nodo derecho, y el nodo se convierte en hijo izquierdo.
Si no se cumple ninguna de las condiciones anteriores si la raíz es de igual prioridad o
menor prioridad convertir la raíz en el hijo izq. de nuevo si no la prioridad del nodo raíz es
mayor al de nuevo insertar nuevo como hijo derecho y colocar el nodo reemplazado como
hijo izquierdo.
2
Bibliografía:
https://sites.google.com/site/iscmendezportafolio/arboles-de-expresion
https://es.slideshare.net/whaleejaa/arboles-de-expresion-57692947
https://prezi.com/zkw9fgngxb-w/arboles-de-expresion/
http://itpn.mx/recursosisc/7semestre/leguajesyautomatas2/Unidad%20I.pdf