Dado el árbol binario se muestra a continuación, determinar el orden en que se visitan los nodos del árbol binario se muestra a continuación suponiendo que la función A (raíz) se invoca. Suponga que los nodos del árbol y los punteros se definen como se muestra. Supongamos que la raíz es un puntero al nodo que contiene 60. Mi respuesta a este problema es la siguiente. ¿Es correcto? ¿Qué hice mal?
60
/ \
30 90
/ \ /
5 38 77
\ / / \
8 32 62 88
struct treeNode{
int data;
struct treeNode *left, *right:
{
struct treeNode *tree_ptr;
void A(struct treeNode *node_ptr){
if (node_ptr != NULL){
printf(“%d ,”,node_ptr->data);
B(node_ptr->left);
B(node_ptr->right);
}
}
void B(struct treeNode *node_ptr){
if (node_ptr != NULL) {
A(node_ptr->left);
printf(“%d ,”,node_ptr->data);
A(node_ptr->right);
}
}
Respuesta: En un vacío que dice para la primera impresión node_ptr-> 60 datos de modo que se imprime A continuación, las llamadas de función B (node_ptr-> izquierda) y luego dentro de B, A se llama (node_ptr-> izquierda) y luego imprimir los datos que es 5 . Y entonces a (node_ptr-> derecha) obtiene la llamada volver a subir a a, por lo que los datos de impresión 8 se imprime. Ahora no estoy tan seguro de qué hacer a continuación, pero me sale lógicamente tendría sentido para imprimir 30 pero no estoy seguro de cómo el ptr recibe de 8 a 30. Y entonces si continúa con el mismo patrón se imprime 38 y 32 que se imprime. Para el subárbol derecho ... 90 77 62 88













