Red de conocimiento informático - Aprendizaje de código fuente - Estructura de datos Experimento 7 Árbol de identificadores y evaluación de expresionesÁrbol de identificadores y evaluación de expresiones Diseño Categoría del experimento Categoría Apellido: Número: Nombre: Comentario Actitud del experimento: Resultado del experimento: Serio ( ): ( ) Teoría experimental : Habilidades de operación correctas: Informe del experimento: Fuerte ( ) Promedio ( ) Difícil ( ) Parcialmente correcto ( ) Incorrecto ( ) Familiar ( ) Entiendo ( ) Promedio ( ) Difícil ( ) Promedio ( ) Difícil ( ) No entiendo ( ) Resultados: Fecha, año, mes y día de corrección del instructor Informe del experimento "Diseño y análisis de algoritmos" -1- 1. Contenido o tema del experimento (1) Defina la estructura de un árbol binario de la siguiente manera: struct tree { int struct tree *left; ; struct tree *right; }; typedef struct tree btnode; typedef btnode *bt; // Definir la estructura // Definir el campo de datos entero // Definir el puntero al subárbol izquierdo // Definir el puntero al subárbol derecho // El tipo de estructura del árbol // Definir el puntero Tipo de puntero del nodo del árbol * 2 3 6 / 3 (2) Almacenar el árbol identificador (ver Figura 7-35) de la expresión aritmética 2*3 6/3 en un matriz dimensional. (3) Encuentre la secuencia de recorrido de preorden, recorrido de orden y recorrido de postorden del árbol de identificadores. (4) Calcule el valor del árbol de identificadores después de la secuencia. 2. Propósitos y requisitos experimentales (1) Dominar el método de almacenamiento de matrices de árboles binarios. (2) Dominar las características no lineales, las características recursivas y las características dinámicas de los árboles binarios. (3) Revise los conceptos de algoritmo transversal de árbol binario y árbol de identificador. 4) Utilice el orden posterior del árbol de identificadores para calcular el valor de la expresión (la operación solo implica, -, *, /). Árbol de identificadores 3. Pasos experimentales y programa fuente (1) Pasos experimentales 1. Cree un puntero de árbol de identificadores y un árbol binario de expresión, y defina las condiciones de terminación. 2. Cree una nueva memoria y contenido de nodo, y aplique la expresión árbol binario, que son la primera salida secuencial, la salida secuencial intermedia y la salida secuencial posterior. El valor de postorden del árbol binario de expresión define dos variables de operando y declara la condición de terminación utilizando la función getvalue. 3. Ejecute el programa principal, cree un árbol binario de expresiones y defina las variables de salida.

Estructura de datos Experimento 7 Árbol de identificadores y evaluación de expresionesÁrbol de identificadores y evaluación de expresiones Diseño Categoría del experimento Categoría Apellido: Número: Nombre: Comentario Actitud del experimento: Resultado del experimento: Serio ( ): ( ) Teoría experimental : Habilidades de operación correctas: Informe del experimento: Fuerte ( ) Promedio ( ) Difícil ( ) Parcialmente correcto ( ) Incorrecto ( ) Familiar ( ) Entiendo ( ) Promedio ( ) Difícil ( ) Promedio ( ) Difícil ( ) No entiendo ( ) Resultados: Fecha, año, mes y día de corrección del instructor Informe del experimento "Diseño y análisis de algoritmos" -1- 1. Contenido o tema del experimento (1) Defina la estructura de un árbol binario de la siguiente manera: struct tree { int struct tree *left; ; struct tree *right; }; typedef struct tree btnode; typedef btnode *bt; // Definir la estructura // Definir el campo de datos entero // Definir el puntero al subárbol izquierdo // Definir el puntero al subárbol derecho // El tipo de estructura del árbol // Definir el puntero Tipo de puntero del nodo del árbol * 2 3 6 / 3 (2) Almacenar el árbol identificador (ver Figura 7-35) de la expresión aritmética 2*3 6/3 en un matriz dimensional. (3) Encuentre la secuencia de recorrido de preorden, recorrido de orden y recorrido de postorden del árbol de identificadores. (4) Calcule el valor del árbol de identificadores después de la secuencia. 2. Propósitos y requisitos experimentales (1) Dominar el método de almacenamiento de matrices de árboles binarios. (2) Dominar las características no lineales, las características recursivas y las características dinámicas de los árboles binarios. (3) Revise los conceptos de algoritmo transversal de árbol binario y árbol de identificador. 4) Utilice el orden posterior del árbol de identificadores para calcular el valor de la expresión (la operación solo implica, -, *, /). Árbol de identificadores 3. Pasos experimentales y programa fuente (1) Pasos experimentales 1. Cree un puntero de árbol de identificadores y un árbol binario de expresión, y defina las condiciones de terminación. 2. Cree una nueva memoria y contenido de nodo, y aplique la expresión árbol binario, que son la primera salida secuencial, la salida secuencial intermedia y la salida secuencial posterior. El valor de postorden del árbol binario de expresión define dos variables de operando y declara la condición de terminación utilizando la función getvalue. 3. Ejecute el programa principal, cree un árbol binario de expresiones y defina las variables de salida.

(2) Código fuente #includelt; stdlib.hgt; #includelt; stdio.hgt; struct tree { char data; struct tree *right }; tipo de estructura de árbol // Declarar el tipo de puntero de nodo de árbol // Datos de nodo // Puntero al subárbol izquierdo // Puntero al subárbol derecho // Declaración de estructura de árbol Informe de experimento de análisis y diseño de algoritmos-2- int btree createbtree; (int * datos, int pos) { btree nuevonodo; if (datos[pos]==0||posgt; n) return NULL; otro { nuevonodo=nuevo nodo de árbol-gt; gt.left=createbtree(data, 2*pos); // n Calcular la longitud de la cadena // Crear árbol binario de expresión // Nuevo puntero de nodo // Condición de terminación // Crear nueva memoria de nodo // Crear contenido de nodo // Crear subárbol izquierdo llama recursivamente a newnode-gt; right=createbtree(data, 2*pos 1); // Crea el subárbol derecho de forma recursiva y llama a return newnode } Devuelve nulo. } void preorden(btree ptr) { if(ptr!=NULL) { printf(" c",ptr-gt; datos); preorden(ptr-gt; izquierda); preorden(ptr-gt; derecha); ptr-gt; izquierda); preorden (ptr-gt; derecha); } gt;