Árboles binarios III Recorridos
Operaciones en árboles binarios Determinar su altura. Determinar su número de elementos. Hacer una copia. Visualizar el árbol binario en pantalla o imprimirlo. Determinar si dos árboles binarios son idénticos. Eliminar el árbol. Si es un árbol de expresión: Evaluar la expresión. Obtener la forma de paréntesis de la expresión
Árboles de expresión Expresión: Secuencia de  tokens * Propiedades: Cada hoja es un operando El nodo raiz o los nodos internos son operadores. Los subárboles son subexpresiones Reglas de precedencia: + (positivo),  -  Negativo *,  /,  % +,  - x z / y - *
Ejemplos de precedencia 6 + 2 * 3 – 4 / 2 ) =  6 +  6  –  2  =  10 5 * 5 ( 5 – ( 6 – 2 ) – 1 ) =  25  ( 5 –  4  – 1 ) =  50 Reglas de precedencia: + (positivo),  -  Negativo *,  /,  % +,  -
Recorrido de un árbol Al recorrer un árbol se debe  visitar al nodo una sola vez. Recorridos: Pre orden (Preorder) En orden (Inorder) Post orden (Posorder)
Token: componentes léxicos que siguen unas reglas prescritas.  Identificadores: Secuencia se caracteres, letras, dígitos y subrayados. Palabras reservadas (keyword, reserved word): Característica del lenguaje C asociada con un significado especial. Signos de puntuación, separadores, comentarios. Operadores
/*  ….  */ ; !  %  ^  &  * ( )  -  +  { }  ~ [ ]  \  ´  :  <  >  ?  ,  .  /  “ “
Operadores de asignación Operadores aritméticos Operadores relacionales Operadores lógicos Símbolo Uso Sentencia no abreviada = a = b *= a *= b a = a * b; /= a /= b a = a / b; %= a %= b a = a % b; += a += b a = a + b; -= a -= b a = a – b; Operador Operación Ejemplo + a + b Suma - a – b Resta * a * b Multiplicación / a / b División (cociente) % a % b División (residuo) Símbolo Uso Significado == a == b Igual a != a != b No igual a > a > b Mayor que < a < b Menor que >= a >= b Mayor o igual que <= a <= b Menor o igual que Operador Operación Ejemplo ! Negación !( a >= b) && Y a > b && i > j || O a > b || i > j
Preorden La raíz se procesa antes que el hijo izquierdo y el hijo derecho. N - I - D B D E C F G A B D E C F G A
Enorden Primero se procesa el hijo izquierdo, luego la raíz y al final el hijo derecho. I - N - D B D E C F G A B D E C F G A
Postorden La raíz se procesa después que el hijo izquierdo y el hijo derecho. I - D - N B D E C F G A B D E C F G A
a * b + c + d - a * b + c + d - x z / y - * a * b + - * * y / x c d c + c d b a * b + - a / c d a * c y x
I. Las siguientes expresiones están en orden. Obtener sus árboles de expresión. (a * b) + (c / d) ((a + b) +c) +d -a + (x + y)  /  b * (c * a) (a + b) / (c – d * e) + e + y * (h / a) - x – y * z + (a + b + c / d * e) (a + b) > (c - e) || a<f && (x<y || y>z) II. Obtener las expresiones preorden y postorden para los primeros tres incisos del ejercicio anterior.

Abb recorrido

  • 1.
  • 2.
    Operaciones en árbolesbinarios Determinar su altura. Determinar su número de elementos. Hacer una copia. Visualizar el árbol binario en pantalla o imprimirlo. Determinar si dos árboles binarios son idénticos. Eliminar el árbol. Si es un árbol de expresión: Evaluar la expresión. Obtener la forma de paréntesis de la expresión
  • 3.
    Árboles de expresiónExpresión: Secuencia de tokens * Propiedades: Cada hoja es un operando El nodo raiz o los nodos internos son operadores. Los subárboles son subexpresiones Reglas de precedencia: + (positivo), - Negativo *, /, % +, - x z / y - *
  • 4.
    Ejemplos de precedencia6 + 2 * 3 – 4 / 2 ) = 6 + 6 – 2 = 10 5 * 5 ( 5 – ( 6 – 2 ) – 1 ) = 25 ( 5 – 4 – 1 ) = 50 Reglas de precedencia: + (positivo), - Negativo *, /, % +, -
  • 5.
    Recorrido de unárbol Al recorrer un árbol se debe visitar al nodo una sola vez. Recorridos: Pre orden (Preorder) En orden (Inorder) Post orden (Posorder)
  • 6.
    Token: componentes léxicosque siguen unas reglas prescritas. Identificadores: Secuencia se caracteres, letras, dígitos y subrayados. Palabras reservadas (keyword, reserved word): Característica del lenguaje C asociada con un significado especial. Signos de puntuación, separadores, comentarios. Operadores
  • 7.
    /* …. */ ; ! % ^ & * ( ) - + { } ~ [ ] \ ´ : < > ? , . / “ “
  • 8.
    Operadores de asignaciónOperadores aritméticos Operadores relacionales Operadores lógicos Símbolo Uso Sentencia no abreviada = a = b *= a *= b a = a * b; /= a /= b a = a / b; %= a %= b a = a % b; += a += b a = a + b; -= a -= b a = a – b; Operador Operación Ejemplo + a + b Suma - a – b Resta * a * b Multiplicación / a / b División (cociente) % a % b División (residuo) Símbolo Uso Significado == a == b Igual a != a != b No igual a > a > b Mayor que < a < b Menor que >= a >= b Mayor o igual que <= a <= b Menor o igual que Operador Operación Ejemplo ! Negación !( a >= b) && Y a > b && i > j || O a > b || i > j
  • 9.
    Preorden La raízse procesa antes que el hijo izquierdo y el hijo derecho. N - I - D B D E C F G A B D E C F G A
  • 10.
    Enorden Primero seprocesa el hijo izquierdo, luego la raíz y al final el hijo derecho. I - N - D B D E C F G A B D E C F G A
  • 11.
    Postorden La raízse procesa después que el hijo izquierdo y el hijo derecho. I - D - N B D E C F G A B D E C F G A
  • 12.
    a * b+ c + d - a * b + c + d - x z / y - * a * b + - * * y / x c d c + c d b a * b + - a / c d a * c y x
  • 13.
    I. Las siguientesexpresiones están en orden. Obtener sus árboles de expresión. (a * b) + (c / d) ((a + b) +c) +d -a + (x + y) / b * (c * a) (a + b) / (c – d * e) + e + y * (h / a) - x – y * z + (a + b + c / d * e) (a + b) > (c - e) || a<f && (x<y || y>z) II. Obtener las expresiones preorden y postorden para los primeros tres incisos del ejercicio anterior.