Angesichts dem Binärbaum unten gezeigt, bestimmt die Reihenfolge , in der die Knoten des binären Baums unten unter der Annahme der Funktion eines besuchtes (root) aufgerufen. Es sei angenommen , dass der Baumknoten und Zeiger definiert werden , wie dargestellt. Es sei angenommen , dass ein Root - Zeiger auf den Knoten enthält , ist 60. Meine Antwort auf dieses Problem ist unten angegeben. Ist es richtig? Was habe ich falsch gemacht?
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);
}
}
Antwort: In Leeren A sagt , es bis zum ersten Druck node_ptr-> Daten so 60 dann gedruckt wird die Funktion aufruft B (node_ptr-> links) , dann innerhalb von B, A (node_ptr-> links) aufgerufen werden Sie dann drucken , dass Daten , die 5 . Und dann A (node_ptr-> rechts) gehen zurück bis zu A aufgerufen wird, zu drucken , die Daten so werden 8 gedruckt. Im jetzt nicht mehr so sicher , was als nächstes zu tun , aber ich logisch wäre es sinnvoll , 30 zu drucken , machen aber ich bin nicht sicher , wie die ptr von 8 bis 30 bekommt Und dann , wenn Sie in dem gleichen Muster weiter 38 wird gedruckt und 32 wird gedruckt. Für den rechten Unterbaum ... 90 77 62 88













