Δίνεται η συνάρτηση που υπολογίζει το βάθος ενός δυαδικού δέντρου:
int depth(Tree t) {
if (t == NULL) return -1;
int left_depth = depth(t->left);
int right_depth = depth(t->right);
return 1 + ((left_depth > right_depth) ? left_depth : right_depth);
}
Ποια η πολυπλοκότητα για ένα τέλειο δυαδικό δέντρο; (χρόνος και χώρος)
Για τον χρόνο, μετρήστε πόσες φορές καλείται η depth για κάθε κόμβο. Για τον χώρο, σκεφτείτε πόσες κλήσεις μπορεί να βρίσκονται ταυτόχρονα στη στοίβα, και πώς σχετίζεται αυτό με το ύψος ενός τέλειου δέντρου με \(n\) κόμβους.
Αριθμός στον οδηγό: Α22.6
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec22-depth-complexity ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec22-depth-complexity.html ·
Markdown (GitHub)