Δίνεται το δέντρο με ρίζα το 5· τα παιδιά του 5 είναι το 7 (αριστερά) και το 1 (δεξιά), και τα παιδιά του 7 είναι το 2 (αριστερά) και το 9 (δεξιά).
flowchart TD
N5(("5")) --> N7(("7"))
N5 --> N1(("1"))
N7 --> N2(("2"))
N7 --> N9(("9"))
Τι τυπώνει καθεμία από τις παρακάτω εκδοχές της print όταν καλείται με τη ρίζα;
void print(Tree t) { /* Pre-order */
if (t == NULL) return;
printf("%d ", t->value);
print(t->left);
print(t->right);
}
void print(Tree t) { /* In-order */
if (t == NULL) return;
print(t->left);
printf("%d ", t->value);
print(t->right);
}
void print(Tree t) { /* Post-order */
if (t == NULL) return;
print(t->left);
print(t->right);
printf("%d ", t->value);
}
Εφαρμόστε τον ορισμό αναδρομικά, ξεκινώντας από τη ρίζα: η διάσχιση του 5 αποτελείται από τη διάσχιση του υποδέντρου του 7, τη διάσχιση του υποδέντρου του 1 και το ίδιο το 5, με τη σειρά που ορίζει η θέση του printf.
Αριθμός στον οδηγό: Α22.4
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec22-traversals ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec22-traversals.html ·
Markdown (GitHub)