Compte tenu de l'arbre binaire illustré ci - dessous, déterminer l'ordre dans lequel les noeuds de l'arbre binaire indiqué ci - dessous sont visités en supposant que la fonction A (racine) est invoquée. On suppose que les nœuds de l' arbre et des pointeurs sont définis comme indiqué. On suppose que la racine est un pointeur sur le nœud contenant 60. Ma réponse à ce problème est donnée ci - dessous. Est-ce correct? Qu'ai-je fait de 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);
}
}
Réponse: Dans A vide , il dit à la première impression node_ptr-> données si 60 est imprimé Ensuite , la fonction appelle B (node_ptr-> gauche) puis au sein de B, A est appelé (node_ptr-> gauche) , puis l' impression que les données qui est 5 . Et puis A (node_ptr-> droite) est appelé Remontons à A, l' impression que les données si 8 est imprimé. Maintenant , je ne suis pas sûr quoi faire , mais je reçois logiquement , il serait logique d'imprimer 30 , mais je ne suis pas sûr de savoir comment le PTR obtient de 8 à 30. Et si vous continuez dans le même modèle 38 est imprimé et 32 est imprimé. Pour le sous - arbre droit ... 90 77 62 88













