Διαδρομές
/
Clojure
Clojure
/
Ασκήσεις
/
Οπτική γωνία
Οπτική γωνία

Οπτική γωνία

Δύσκολο

Οδηγίες

Άλλαξε τη ρίζα ενός δέντρου σε έναν επιλεγμένο κόμβο.

Ένα δέντρο είναι ένας ειδικός τύπος γράφου, όπου όλοι οι κόμβοι είναι συνδεδεμένοι αλλά δεν υπάρχουν κύκλοι. Αυτό σημαίνει ότι υπάρχει ακριβώς ένα μονοπάτι για να πας από έναν κόμβο σε έναν άλλο, για οποιοδήποτε ζεύγος κόμβων.

Αυτή η άσκηση έχει να κάνει με τον επαναπροσανατολισμό ενός δέντρου, ώστε να δεις τα πράγματα από μια διαφορετική οπτική γωνία. Για παράδειγμα, τα οικογενειακά δέντρα παρουσιάζονται συνήθως από την οπτική του προγόνου:

    +------0------+
    |      |      |
  +-1-+  +-2-+  +-3-+
  |   |  |   |  |   |
  4   5  6   7  8   9

Όμως ένα δέντρο δεν έχει κάποια εγγενή κατεύθυνση. Οι ίδιες πληροφορίες μπορούν να παρουσιαστούν από την οπτική γωνία οποιουδήποτε άλλου κόμβου του δέντρου, τραβώντας τον κόμβο προς τα πάνω, στη ρίζα, και σύροντας μαζί του και τις σχέσεις του. Έτσι, το ίδιο δέντρο από την οπτική του 6 θα έμοιαζε κάπως έτσι:

        6
        |
  +-----2-----+
  |           |
  7     +-----0-----+
        |           |
      +-1-+       +-3-+
      |   |       |   |
      4   5       8   9

Αυτό μας επιτρέπει να περιγράφουμε πιο απλά τα μονοπάτια ανάμεσα σε δύο κόμβους. Για παράδειγμα, το μονοπάτι από το 6 στο 9 (που στο πρώτο δέντρο ανεβαίνει στη ρίζα και μετά κατεβαίνει σε ένα διαφορετικό φύλλο) φαίνεται να ακολουθεί το μονοπάτι 6-2-0-3-9.

Αυτή η άσκηση έχει να κάνει με το να πάρεις ένα δέντρο εισόδου και να το επαναπροσανατολίσεις από τη σκοπιά ενός από τους κόμβους του.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Clojure Exercism

Έτοιμος να ξεκινήσεις την άσκηση Οπτική γωνία;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Clojure με 12 έννοιες105 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.