Ένα δυαδικό δέντρο μπορεί να κωδικοποιηθεί με δύο λειτουργίες lκαι r
τέτοια ώστε για ένα node n, l(n)δίνουν το αριστερό παιδί του n, r(n)
δίνουν το δικαίωμα του παιδιού της n.
Ένα κλαδί ενός δένδρου είναι ένα μονοπάτι από τη ρίζα προς ένα φύλλο, το μήκος του υποκαταστήματος σε ένα συγκεκριμένο φύλλο είναι ο αριθμός των τόξων στο μονοπάτι από τη ρίζα στην εν λόγω φύλλου.
Ας MinBranch(l,r,x)είναι μια απλή αναδρομικό αλγόριθμο για τη λήψη ενός δυαδικού δένδρου που κωδικοποιείται από τις λειτουργίες L και R μαζί με τον κόμβο ρίζα χ για το δυαδικό δέντρο και επιστρέφει το μήκος της συντομότερης κλαδί του δυαδικού δένδρου.
Δώστε τον ψευδοκώδικα για αυτόν τον αλγόριθμο.
Εντάξει, τόσο βασικά αυτό είναι ό, τι έχω καταλήξει μέχρι στιγμής:
MinBranch(l, r, x)
{
if x is None return 0
left_one = MinBranch(l, r, l(x))
right_one = MinBranch(l, r, r(x))
return {min (left_one),(right_one)}
}
Προφανώς αυτό δεν είναι μεγάλη ή τέλεια. Θα ήμουν ευγνώμων αν οι άνθρωποι μπορεί να με βοηθήσει να πάρει αυτό το τέλειο και εργασίας - οποιαδήποτε βοήθεια θα εκτιμηθεί.













