Gitt det binære tre er vist nedenfor, bestemme i hvilken rekkefølge nodene i det binære tre er vist nedenfor blir besøkt under forutsetning av funksjonen A (rot) blir påkalt. Anta at de tre noder og pekere er definert som vist. Anta at rot er en peker til noden som inneholder 60. Mitt svar på dette problemet er gitt nedenfor. Er det riktig? Hva gjorde jeg galt?
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);
}
}
Svar: I tomrommet A sier det til første utskrifts node_ptr-> data så 60 blir trykt Deretter kaller funksjonen B (node_ptr-> venstre) deretter innen B, A blir kalt (node_ptr-> venstre) deretter du skrive at data som er 5 . Og så A (node_ptr-> høyre) blir kalt gå tilbake til A, print som data så 8 blir skrevet ut. Nå Im ikke så sikker på hva jeg skal gjøre neste, men jeg får logisk at det ville være fornuftig å skrive ut 30, men jeg er ikke sikker på hvordan ptr får fra 8 til 30. Og så hvis du fortsetter i samme mønster 38 blir trykt og 32 blir skrevet ut. For den rette treet ... 90 77 62 88













