Data l'albero binario mostrato sotto, determinare l'ordine in cui i nodi dell'albero binario illustrato di seguito sono visitati assuma la funzione A (root) viene richiamato. Si supponga che i nodi della struttura e puntatori sono definiti come indicato. Si supponga che la radice è un puntatore al nodo contenente 60. La mia risposta a questo problema è riportata qui sotto. È corretto? Che cosa ho fatto di sbagliato?
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);
}
}
Risposta: In vuoto Una dice di stampa prima node_ptr-> dati in modo 60 viene stampato Allora la funzione chiama B (node_ptr-> sinistra) quindi entro B, A viene chiamato (node_ptr-> a sinistra), allora si stampano i dati che è 5 . E poi a (node_ptr-> destra) viene chiamato risalgono fino ad a, di stampa che i dati in modo da 8 ottiene stampati. Ora Im non così sicuro di cosa fare dopo, ma ottengo logicamente avrebbe senso per stampare 30, ma non sono sicuro di come il PTR ottiene dalle 8 alle 30. E poi se si continua nello stesso modello 38 viene stampato e 32 viene stampato. Per il sottoalbero destro ... 90 77 62 88













