Δένδρα

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Ορισμοί

Ιδιότητες

Υλοποίηση σε Pascal

Παράδειγμα:
program bintree;

type
    binTree = ^binTreeElem;

    binTreeElem = record
        val : integer;
        left : binTree;
        right : binTree;
    end;


var
    theTree, node : binTree;

begin
    new(node);
    node^.val := 5;
    node^.left := nil;
    node^.right := nil;
    theTree := node;

    new(node);
    node^.val := 12;
    node^.left := nil;
    node^.right := nil;
    theTree^.right = node;
end.

Δένδρα αναζήτησης

Διάσχιση δένδρων

Η διάσχιση ενός δένδρου μπορεί να γίνει με τους παρακάτω τρόπους ανάλογα με τη σειρά επίσκεψης των κόμβων:
Προδιαταγμένη διάσχιση (preorder traversal)
  1. επίσκεψη της ρίζας
  2. επίσκεψη του αριστερού υποδένδρου
  3. επίσκεψη του δεξιού υποδένδρου
Μεταδιαταγμένη διάσχιση (postorder traversal)
  1. επίσκεψη του αριστερού υποδένδρου
  2. επίσκεψη του δεξιού υποδένδρου
  3. επίσκεψη της ρίζας
Ενδοδιαταγμένη διάσχιση (inorder traversal)
  1. επίσκεψη του αριστερού υποδένδρου
  2. επίσκεψη της ρίζας
  3. επίσκεψη του δεξιού υποδένδρου
Επίπεδοδιαταγμένη διάσχιση (level order traversal)
  1. επίσκεψη των κόμβων από πάνω προς τα κάτω

Εφαρμογές

Βιβλιογραφία

Ασκήσεις

Άσκηση ADS05

  1. Να υλοποιηθεί σε Pascal πρόγραμμα το οποίο με τη χρήση διατεταγμένου δυαδικού δένδρου διαβάζει από το χρήστη μια σειρά από ονόματα μέχρι να συναντήσει τελεία και τα εκτυπώνει με αλφαβητική σειρά. Παράδειγμα:
    Pascal
    Gauss
    Newton
    Einstein
    .
    Einstein
    Gauss
    Newton
    Pascal
    
Περισσότερες λεπτομέρειες για τις ασκήσεις