ΗΥ240 - Παναγιώτα Φατούρου 1

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΗΥ240 - Παναγιώτα Φατούρου 1"

Transcript

1 ΕΝΟΤΗΤΑ 3 ΔΕΝΔΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 Δένδρα Ένα δένδρο Τ αποτελείται από ένα σύνολο από κόµβους µεταξύ των οποίων ορίζεται µια σχέση γονέα-παιδιού µε τις εξής ιδιότητες: q Αν το Τ δεν είναι το κενό δένδρο, περιέχει έναν ειδικό κόµβο που ονοµάζεται ρίζα και δεν έχει γονέα. q Για οποιοδήποτε άλλο κόµβο v του Τ υπάρχει ένας µοναδικός κόµβος στο Τ που αποτελεί το γονέα του v. q Κόµβοι (nodes) q Ακµές (edges) q Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) q Μονοπάτι (path) q Πρόγονος απόγονος (ancestor, descendant) q Φύλλο Εσωτερικός κόµβος (leaf, non-leaf) ΗΥ240 - Παναγιώτα Φατούρου 2 1

2 Δένδρα Αναδροµικός Ορισµός Σχήµα 4.3: Lewis & Denenberg, Data Structures & Their Algorithms, Addison-Wesley, 1991 Ένα κενό δένδρο Τ δεν περιέχει κόµβους και ακµές. Ένα (µη-κενό) δένδρο Τ είναι ένα πεπερασµένο σύνολο από έναν ή περισσότερους κόµβους τ.ω.: q Ένας µόνο κόµβος (χωρίς καµία ακµή) αποτελεί ένα δένδρο. Ο κόµβος αυτός είναι και ρίζα του δένδρου. q Έστω ότι Τ 1,..., Τ κ (κ > 0) είναι δένδρα που δεν µοιράζονται κόµβους και έστω r 1,..., r k οι ρίζες τους. Έστω r ένας νέος κόµβος. Αν το Τ αποτελείται από τους κόµβους και τις ακµές των Τ 1,..., Τ κ, το νέο κόµβο r και τις νέες ακµές <r,r 1 >, <r,r 2 >,, <r,r k >, τότε το Τ είναι δένδρο. Η ρίζα του Τ είναι το r. Τα Τ 1,..., Τ κ είναι τα υποδένδρα του Τ. ΗΥ240 - Παναγιώτα Φατούρου 3 Δένδρα Βαθµός Κόµβου (node degree) Ο αριθµός των παιδιών του κόµβου. Βαθµός Δένδρου (tree degree) Μέγιστος βαθµός µεταξύ των βαθµών των κόµβων του δένδρου. Επίπεδο (level) Η ρίζα βρίσκεται στο επίπεδο 0. Ένας κόµβος βρίσκεται στο επίπεδο k αν η απόσταση του από τη ρίζα είναι k. Το επίπεδο είναι εποµένως ένα σύνολο από κόµβους. Ύψος Κόµβου (node height) Μήκος µακρύτερου µονοπατιού από τον κόµβο σε οποιοδήποτε φύλλο. Ύψος Δένδρου (tree height) Μέγιστο ύψος µεταξύ των υψών των κόµβων του δένδρου. Βάθος Κόµβου (node depth) Μήκος µονοπατιού από τη ρίζα στον κόµβο. Ύψος Δένδρου = Βάθος Δένδρου Βάθος Δένδρου (tree depth) Μέγιστο βάθος µεταξύ των βαθών των κόµβων του δένδρου. ΗΥ240 - Παναγιώτα Φατούρου 4 2

3 Είδη Δένδρων Διατεταγµένο Δένδρο Δένδρο στο οποίο έχει οριστεί µια διάταξη στα παιδιά κάθε κόµβου. Δυαδικό δένδρο Διατεταγµένο δένδρο του οποίου κάθε κόµβος έχει το πολύ δύο παιδιά (ένα αριστερό και ένα δεξί). q λ (nill ή NULL): κενό δυαδικό δένδρο (χωρίς κόµβους και ακµές) Γεµάτο Δυαδικό Δένδρο (full binary tree) Δεν υπάρχει κόµβος µε µόνο ένα παιδί στο δένδρο. Τέλειο Δυαδικό Δένδρο (perfect binary tree) Γεµάτο δυαδικό δένδρο στο οποίο όλα τα φύλλα έχουν το ίδιο βάθος. Δάσος Πεπερασµένο σύνολο από δένδρα. Διατεταγµένα Δένδρα Δυαδικό Δένδρο Γεµάτο Δυαδικό Δένδρο Τέλειο Δυαδικό Δένδρο ΗΥ240 - Παναγιώτα Φατούρου 5 Είδη Δένδρων Πλήρες Δυαδικό Δένδρο Ύψους h (complete binary tree of height h) Αποτελείται από ένα τέλειο δυαδικό δένδρο ύψους h-1 στο οποίο έχουν προστεθεί ένα ή περισσότερα φύλλα µε ύψος h. Τα φύλλα αυτά έχουν τοποθετηθεί στις αριστερότερες θέσεις του δένδρου. h-1 Αναδροµικός Ορισµός q Ένα πλήρες δυαδικό δένδρο ύψους 0 αποτελείται από ένα µόνο κόµβο. q Ένα πλήρες δυαδικό δένδρο ύψους 1 είναι ένα δένδρο ύψους 1 στο οποίο η ρίζα έχει είτε δύο παιδιά ή ένα µόνο αριστερό παιδί. q Ένα πλήρες δυαδικό δένδρο ύψους h>1, αποτελείται από µια ρίζα και 2 υποδένδρα τ.ω: είτε το αριστερό υποδένδρο είναι τέλειο ύψους h-1 και το δεξιό είναι πλήρες ύψους h-1, ή το αριστερό υποδένδρο είναι πλήρες ύψους h-1 και το δεξιό είναι τέλειο ύψους h-2. h-1 h-2 ΗΥ240 - Παναγιώτα Φατούρου 6 h Χ h-1 3

4 Ιδιότητες Δυαδικών Δένδρων Πρόταση Ένα τέλειο δυαδικό δένδρο ύψους h έχει 2 h+1 1 κόµβους, εκ των οποίων 2 h είναι φύλλα και 2 h 1 είναι εσωτερικοί κόµβοι. h Απόδειξη Με επαγωγή στο h. Βάση επαγωγής, h = 0 Το τέλειο δυαδικό δένδρο ύψους 0 αποτελείται από έναν µόνο κόµβο-ρίζα και άρα έχει 1 κόµβο που είναι φύλλο και 0 εσωτερικούς κόµβους. Πράγµατι: 2 h+1 1 = = 2 1 = 1 κόµβος 2 h = 2 0 = 1 φύλλο 2 h 1 = 0 εσωτερικοί κόµβοι Επαγωγική Υπόθεση Θεωρούµε έναν οποιονδήποτε ακέραιο k >=0. Έστω ότι οποιοδήποτε τέλειο δυαδικό δένδρο ύψους k έχει 2 k+1 1 κόµβους, εκ των οποίων 2 k είναι φύλλα και 2 k 1 είναι εσωτερικοί κόµβοι. ΗΥ240 - Παναγιώτα Φατούρου 7 Ιδιότητες Δυαδικών Δένδρων Επαγωγικό βήµα Θα αποδείξουµε ότι ο ισχυρισµός είναι σωστός για δένδρα ύψους k+1. Ένα τέλειο δένδρο Τ ύψους k+1 αποτελείται από 2 τέλεια δένδρα ύψους k (έστω Τ 1, Τ 2 ) και τη ρίζα του. Από επαγωγική υπόθεση καθένα από τα Τ 1, Τ 2, έχει 2 κ+1 1 κόµβους, εκ των οποίων 2 κ είναι φύλλα και 2 κ 1 είναι εσωτερικοί κόµβοι. k k+1 Άρα το Τ έχει: 2*(2 κ+1 1) +1 κόµβους = 2 κ+2 1 κόµβους (όπως απαιτείται), εκ των οποίων: 2 κ + 2 κ = 2 κ+1 είναι φύλλα (όπως απαιτείται), και 2*(2 κ 1) + 1 = 2 κ+1 1 είναι εσωτερικοί κόµβοι (όπως απαιτείται). ΗΥ240 - Παναγιώτα Φατούρου 8 4

5 Ενδεικτικές Λειτουργίες σε Δένδρα q Parent(v): επιστρέφει τον κόµβο γονέα του κόµβουv ή nill αν ο v είναι η ρίζα q Children(v): επιστρέφει το σύνολο των παιδιών του v ή το άδειο σύνολο αν ο v είναι φύλλο q FirstChild(v): επιστρέφει το πρώτο παιδί του v ή nill αν ο v είναι φύλλο (σε διατεταγµένα δένδρα) q RightSibling(v): επιστρέφει το δεξιό αδελφικό κόµβο του v ή nill αν ο v είναι η ρίζα ή το δεξιότερο παιδί του γονικού του κόµβου q LeftSibling(v): επιστρέφει τον αριστερό αδελφικό κόµβο του v ή nill αν ο v είναι η ρίζα ή το αριστερότερο παιδί του γονικού του κόµβου ΗΥ240 - Παναγιώτα Φατούρου 9 Ενδεικτικές Λειτουργίες σε Δένδρα n IsLeaf(v): επιστρέφει true αν ο v είναι φύλλο, false διαφορετικά n n Depth(v): επιστρέφει το βάθος του v στο δένδρο Height(v): επιστρέφει το ύψος του v στο δένδρο Σε δυαδικά δένδρα n LeftChild(v) (RightChild(v)): επιστρέφει το αριστερό (δεξιό, αντίστοιχα) παιδί του v (ή nill) ΗΥ240 - Παναγιώτα Φατούρου 10 5

6 Υλοποίηση Δυαδικών Δένδρων Κάθε κόµβος έχει ένα πεδίο data και δύο δείκτες LC (Left Child) και RC (Right Child) που δείχνουν στο αριστερό και στο δεξιό παιδί του κόµβου αντίστοιχα. Οι λειτουργίες LeftChild() και RightChild() υλοποιούνται πολύ εύκολα σε Θ(1) χρόνο. Απλά-συνδεδεµένο δένδρο LC Data Parent RC Είναι το ίδιο αλήθεια για τη λειτουργία Parent()? Αποδοτική Υλοποίηση της Parent() Κρατάµε και ένα τρίτο δείκτη σε κάθε κόµβο που δείχνει στον κόµβο γονέα (διπλά-συνδεδεµένο δένδρο). Διπλά-συνδεδεµένο δένδρο ΗΥ240 - Παναγιώτα Φατούρου 11 Δένδρα Αριθµητικών Εκφράσεων Υπολογισµός Αριθµητικής Έκφρασης q Label(v): αριθµός ή πράξη που αποτελεί τα data του v q ApplyOp(op: operation, x,y: numbers): υπολογίζει την έκφραση x <op> y, ανάλογα µε το ποια πράξη είναι το op. function Evaluate(pointer P): integer /* Return value of the expression represented by the tree with root P */ integer x_l, x_r, res; if IsLeaf(P) then return Label(P) else { x_l = Evaluate(LeftChild(P)) x_r = Evaluate(RightChild(P)) op = Label(P) res = ApplyOp(op, x_l, x_r); return res; ΗΥ240 - Παναγιώτα Φατούρου 12 6

7 Ιχνηλάτιση της Evaluate() function Evaluate(pointer P): integer /* Return value of the expression represented by the tree with root P */ integer x_l, x_r, res; if IsLeaf(P) then return Label(P) else { x_l = Evaluate(LeftChild(P)) x_r = Evaluate(RightChild(P)) op = Label(P) res = ApplyOp(op, x_l, x_r); return res; if IsLeaf(P->A) -> FALSE x_l = Evaluate(P->B); (<- 10) if IsLeaf(P->B) -> FALSE x_l = Evaluate(P->C); (<- 20) if IsLeaf(P->C) return 20; x_r = Evaluate(P->D); (<- 2) if IsLeaf(P->D) return 2; res = ApplyOp( /, 20, 2) = 20 / 2 = 10; return 10; x_r = Evaluate(P->E); (<- 3) if IsLeaf(P->E) return 3; res = ApplyOp( +, 10, 3) = = 13; return 13; ΗΥ240 - Παναγιώτα Φατούρου 13 Διάσχιση Δένδρων q Διάσχιση ή διέλευση δένδρου (tree traversal) χαρακτηρίζεται κάθε διαδικασία επισκέψεωςεπεξεργασίας όλων των κόµβων του δένδρου µε συστηµατικό τρόπο. q Ισοδύναµα, θα µπορούσε να ορισθεί ως επιβολή ολικής διατάξεως επί των κόµβων του δένδρου µέσω συστηµατικής επεξεργασίας των δεδοµένων των κόµβων βάσει αυτής της διατάξεως. Σχήµα 4.10(α): Lewis & Denenberg, Data Structures & Their Algorithms, Addison-Wesley, 1991 q Η ύπαρξη πολλαπλών δυνατοτήτων για τη διάταξη ενός κόµβου ως προς τους απογόνους του, οδηγεί σε διάφορα είδη διασχίσεων (προδιατεταγµένη διάσχιση, µεταδιατεταγµένη διάσχιση, ενδοδιατεγµένη διάσχιση). Visit(pointer p): αυθαίρετη λειτουργία που εφαρµόζεται στον κόµβο στον οποίο δείχνει ο δείκτης P Παράδειγµα Τύπωση των δεδοµένων του κόµβου Visit(pointer p) { print(p->data); ΗΥ240 - Παναγιώτα Φατούρου 14 7

8 Προδιατεταγµένη Διάσχιση Για κάθε κόµβο v, η προδιατεταγµένη διάσχιση κάνει τα εξής µε τη σειρά που αναφέρονται: q Επίσκεψη του v q Επίσκεψη των υποδένδρων του v ξεκινώντας από το αριστερότερο προς το δεξιότερο υποδένδρο του. Η διαδικασία διάσχισης ξεκινά από τη ρίζα. Κάθε κόµβος προηγείται των παιδιών του στην διάταξη που προκύπτει. Procedure PreOrder(pointer p) { /* P is a pointer to the root of α general tree */ Visit(p); foreach child q of p, in order (from left to right) PreOrder(q); Προδιατεταγµένη Διάταξη ΗΥ240 - Παναγιώτα Φατούρου 15 Προδιατεταγµένη Διάσχιση Procedure PreOrder(pointer p) { /* General Tree */ /* P is a pointer to the root of α general tree */ Visit(p); foreach child q of p, in order (from left to right) PreOrder(q); Προδιατεταγµένη Διάταξη Procedure PreOrder(pointer p) { /* Binary Tree */ /* p is a pointer to the root of a binary tree */ Visit(p); PreOrder(p->LC); PreOrder(p->RC); Παράδειγµα Εκτύπωση Κόµβων A,B,E,F,H,I,C,D,G,J,L,K ΗΥ240 - Παναγιώτα Φατούρου 16 8

9 Ιχνηλατώντας την PreOrder PreOrder(p->A) if (p == NULL) // αποτιµάται σε FALSE PreOrder(p->D); print(p->a); // τυπώνει το Α print(p->d); // τυπώνει το D PreOrder(p->Β); print(p->β); // τυπώνει το Β PreOrder(p->E); print(p->e); // τυπώνει το E PreOrder(NULL); // LC του Ε PreOrder(NULL) // RC του E PreOrder(p->F); print(p->f); // τυπώνει το F PreOrder(p->H); print(p->h); // τυπώνει το H PreOrder(NULL); // LC του H PreORder(NULL) // RC του H PreOrder(p->I); print(p->i); // τυπώνει το I PreOrder(NULL); // LC του I PreOrder(p->G); print(p->g); // τυπώνει το G PreOrder(p->J); // LC του G print(p->j); // τυπώνει το J PreOrder(p->L); print(p->l); // τυπώνει το L PreOrder(NULL); // LC του L PreORder(NULL) // RC του L PreOrder(NULL); // RC του J PreOrder(P->K); print(p->k); // τυπώνει το K PreOrder(NULL); // LC του K PreOrder(NULL) // RC του K PreOrder(NULL); // RC του D // τέλος PreOrder(p->D) & PreORder(p->A) PreOrder(NULL) // RC του I // τέλος PreORder(p->I), PreOrder(p->F) & PreOrder(p->B) ΗΥ240 - Παναγιώτα Φατούρου 17 Μεταδιατεταγµένη Διάσχιση Για κάθε κόµβο v, η µεταδιατεταγµένη διάσχιση κάνει τα εξής µε τη σειρά που αναφέρονται: q Επίσκεψη των υποδένδρων του v ξεκινώντας από το αριστερότερο προς το δεξιότερο υποδένδρο του. q Επίσκεψη του v Η διαδικασία διάσχισης ξεκινά από τη ρίζα. Κάθε κόµβος έπεται των παιδιών του στην διάταξη. Procedure PostOrder(pointer p) { /* p is a pointer to the root of a general tree */ foreach child q of p, in order { Postorder(q); Visit(p); ΗΥ240 - Παναγιώτα Φατούρου 18 9

10 Μεταδιατεταγµένη Διάσχιση Procedure PostOrder(pointer p) { /* General Tree */ /* p is a pointer to the root of a general tree */ foreach child q of p, in order { Postorder(q); Visit(p); Procedure PostOrder(pointer p) { /* Binary Tree */ /*p is a pointer to the root of a binary tree*/ PostOrder(p->LC); PostOrder(p->RC); Visit(p); Ιχνηλατίστε την εκτέλεση της PostOrder() πάνω στο δένδρο του Σχήµατος. Παράδειγµα Εκτύπωση Κόµβων E,H,I,F,B,C,L,J,K,G,D,A ΗΥ240 - Παναγιώτα Φατούρου 19 A Ενδοδιατεγµένη Διάσχιση Για κάθε κόµβο v, η ενδοδιατεταγµένη διάσχιση ενός δυαδικού δένδρου κάνει τα εξής µε τη σειρά που αναφέρονται: q Επίσκεψη του αριστερού υποδένδρου του v q Επίσκεψη του v q Επίσκεψη του δεξιού υποδένδρου του v Η διαδικασία διάσχισης ξεκινά από τη ρίζα. Το αριστερό παιδί ενός κόµβου v προηγείται του v, ενώ το δεξιό παιδί του έπεται του v στην διάταξη. Procedure InOrder(pointer p) { /* p is a pointer to the root of a binary tree */ InOrder(p->LC); Visit(p); InOrder(p->RC); Παράδειγµα Εκτύπωσης D,B,G,E,H,A,C,K,I,F,J B C D E F G H I J K ΗΥ240 - Παναγιώτα Φατούρου

11 Διασχίσεις Δένδρων Διάσχιση Δένδρου κατά Επίπεδα (κατά πλάτος) Επισκέπτεται τους κόµβους κατά αύξον βάθος και τους κόµβους του ίδιου επιπέδου από τα αριστερά προς τα δεξιά. Χρήση Ουράς q Αρχικά η ουρά περιέχει µόνο τη ρίζα. q Στη συνέχεια επαναληπτικά: κάνουµε Deque ένα στοιχείο της ουράς και προσθέτουµε τα παιδιά από αριστερά προς τα δεξιά του στοιχείου αυτού. Procedure LevelOrder(pointer r) { Queue Q; pointer P; MakeEmptyQueue(Q); Enqueue(Q,r); while (! IsEmptyQueue(Q)) { P = Dequeue(Q); Visit(P); foreach child c of P, in order, do Enqueue(c); Παράδειγµα Περιεχόµενα Ουράς Α B, C, D C, D, E, F D, E, F E, F, G F, G G, H, I H, I, J, K I, J, K J, K K, L L <empty> ΗΥ240 - Παναγιώτα Φατούρου 21 Διασχίσεις Δένδρων Με Χρήση Στοίβας Αναδροµικές λύσεις έχουν ήδη συζητηθεί. Χρονική Πολυπλοκότητα Διάσχισης; Ο(ng(n)), όπου n το πλήθος των κόµβων και g(n) η χρονική πολυπλοκότητα της Visit() Χωρική Πολυπλοκότητα; Μέγεθος στοίβας ανάλογο του ύψους του δένδρου. Διάσχιση κατά Επίπεδα Χρονική Πολυπλοκότητα Διάσχισης; Ο(ng(n)) Χωρική Πολυπλοκότητα; Πόσους κόµβους µπορεί να περιέχει η ουρά στη χειρότερη περίπτωση; ΗΥ240 - Παναγιώτα Φατούρου 22 11

12 Υλοποίηση Διατεταγµένων Δένδρων µε Βαθµό Μεγαλύτερο του Δύο Αν είναι γνωστό το µέγιστο πλήθος παιδιών ενός κόµβου (έστω MC), τότε κάθε κόµβος θα περιέχει έναν πίνακα µε MC δείκτες, έναν για κάθε δυνητικό παιδί του (κάποιοι από τους δείκτες µπορεί να είναι NULL αν τα αντίστοιχα παιδιά δεν υπάρχουν). ΗΥ240 - Παναγιώτα Φατούρου 23 Υλοποίηση Διατεταγµένων Δένδρων Τι γίνεται αν δεν γνωρίζουµε τον αριθµό των παιδιών που µπορεί να έχει κάποιος κόµβος; Απεικόνιση Διατεταγµένου Δένδρου ως Δυαδικό Αν κάθε κόµβος διασυνδέεται µε το αριστερότερο παιδί του και µε τον πρώτο στα δεξιά αδελφικό του κόµβο, τότε αρκούν δύο δείκτες σε κάθε κόµβο. Το αρχικό δένδρο µετασχηµατίζεται σε δυαδικό! (Α) Μορφή Κόµβου LC data RS (Β) Σχήµα 4.10(α): Lewis & Denenberg, Data Structures & Their Algorithms, Addison-Wesley, 1991 q LC: Left Child q RS: Right Sibling ΗΥ240 - Παναγιώτα Φατούρου 24 12

13 Υλοποίηση Διατεταγµένων Δένδρων Μπορούµε να τυπώσουµε το διατεταγµένο δένδρο (Α) βασιζόµενοι στο δυαδικό δένδρο (Β); Procedure PrintTree(pointer R) { if (R == NULL) return; Visit(R); PrintTree(R->LC); PrintTree(R->RS); Ύψος δυαδικού ως προς το αρχικό δένδρο; Πολυπλοκότητες q FirstChild(), RightSibling(): Θ(1) q kth-child(k, v), εύρεση του k-οστού παιδιού του v: Θ(k). q Parent(): δεν υποστηρίζεται αποδοτικά. (Α) (Β) Procedure Visit(pointer R) { pointer P; print(r->data); print( Children: ); P = R->LC; while (P!= NULL) { print(p->data); P = P->RS; print( \n ); ΗΥ240 - Παναγιώτα Φατούρου 25 Υλοποίηση Πλήρων Δυαδικών Δένδρων Υπάρχει µόνο ένα πλήρες δυαδικό δένδρο µε n κόµβους και το υλοποιούµε µε ένα πίνακα N στοιχείων. Αριθµούµε τους κόµβους µε αριθµούς στο διάστηµα {0,...,n-1 και αποθηκεύουµε τον κόµβο i στο στοιχείο Τ[i] του πίνακα. Θέλουµε να κάνουµε την αρίθµηση έτσι ώστε να πετύχουµε την εκτέλεση χρήσιµων λειτουργιών στο δένδρο σε σταθερό χρόνο. 1 C 3 G D 4 5 K 6 0 B O M Y S A 2 i 2i+1 E X Αρίθµηση Η ρίζα είναι ο κόµβος 0. Το αριστερό παιδί του κόµβου i αριθµείται ως κόµβος 2i+1, ενώ το δεξί παιδί του ως κόµβος 2i Α C E G D K X B O M Y s ΗΥ240 - Παναγιώτα Φατούρου 26 13

14 Υλοποίηση Πλήρων Δυαδικών Δένδρων A 0 i 2i+1 1 C E Α C E G D K X B O M Y s 3 G D 4 5 K 6 X Υλοποίηση Λειτουργιών q IsLeaf(i): return (2i+1 n); q LeftChild(i): if (2i+1 < n) return (2i+1) else return nill; q RightChild(i): if (2i+2 < n) return(2i+2); else return nill; q LeftSibling(i): if (i!= 0 and i not odd) return (i-1); q RightSibling(i): if (i!= n-1 and i not even) return(i+1); q Parent(i): if (i!= 0) return( (i-1)/2 ); B O M Y S Χρονική πολυπλοκότητα κάθε λειτουργίας: Θ(1) ΗΥ240 - Παναγιώτα Φατούρου 27 Αναφορές Το υλικό της ενότητας αυτής περιέχεται στo βιβλίo: n Harry Lewis and Larry Denenberg, Data Structures and Their Algorithms, Harper Collins Publishers, Inc., New York, 1991 Chapter 4: Trees ΗΥ240 - Παναγιώτα Φατούρου 28 14

ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.

ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v. ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ. ΗΥ240 - Παναγιώτα Φατούρου 1

ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ. ΗΥ240 - Παναγιώτα Φατούρου 1 ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 3η: Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 3η: Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 3η: Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΝΟΤΗΤΑ 3 ΔΕΝΔΡΑ ΗΥ240 - Παναγιώτα Φατούρου 2 Δένδρα Ένα δένδρο Τ αποτελείται από

Διαβάστε περισσότερα

ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat

ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (pat ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ένδρα u o Κόµβοι (nodes) o Ακµές (edges) o Ουρά και κεφαλή ακµής (tail, head) o Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) o Μονοπάτι (path) o Πρόγονος απόγονος (ancestor, descendant)

Διαβάστε περισσότερα

ΗΥ240 - Παναγιώτα Φατούρου 2

ΗΥ240 - Παναγιώτα Φατούρου 2 ΕΝΟΤΗΤΑ 3 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος

Διαβάστε περισσότερα

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ

οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ 1 ένδρα εσωτερικός κόµβος u το δένδρο έχει ύψος 4 u έχει ύψος 3 w έχει βάθος 2 κόµβος ένδρο: γράφηµα χωρίς κύκλους o Ρίζα (root) o Κόµβος (node) o Ακµή (edge) o Γονέας (parent) Παιδί (child)

Διαβάστε περισσότερα

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type).

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 7η: Ουρές Προτεραιότητας Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 7 Ουρές Προτεραιότητας ΗΥ240 - Παναγιώτα Φατούρου 2 Ουρές

Διαβάστε περισσότερα

Ενότητα 7 Ουρές Προτεραιότητας

Ενότητα 7 Ουρές Προτεραιότητας Ενότητα Ουρές Προτεραιότητας ΗΥ4 - Παναγιώτα Φατούρου Ουρές Προτεραιότητας Θεωρούµε ένα χώρο κλειδιών U και έστω ότι µε κάθε κλειδί Κ (τύπου Key) έχει συσχετισθεί κάποια πληροφορία Ι (τύπου Type). Έστω

Διαβάστε περισσότερα

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή ισχύει ότι S i S j =, για κάθε i,j µε i j και S 1 S k = U. Λειτουργίες q MakeSet(X): επιστρέφει

Διαβάστε περισσότερα

Διδάσκων: Κωνσταντίνος Κώστα

Διδάσκων: Κωνσταντίνος Κώστα Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος

Διαβάστε περισσότερα

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Δομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 8 Ξένα Σύνολα

Διαβάστε περισσότερα

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι - Δυαδικά Δένδρα (binary trees) - Δυαδικά Δένδρα Αναζήτησης (binary search trees) 1 Δυαδικά Δένδρα Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Εφαρμογές 2 Ορισμοί (αναδρομικός ορισμός) Ένα δένδρο t είναι ένα πεπερασμένο

Διαβάστε περισσότερα

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 (5.1-5.2 και 5.4-5.6) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Δέντρα Βασικοί ορισµοί Μαθηµατικές ιδιότητες Διάσχιση δέντρων Preorder, postorder,

Διαβάστε περισσότερα

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 4η: Σύνολα - Λεξικά Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 4η: Σύνολα - Λεξικά Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 4η: Σύνολα - Λεξικά Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ240 - Παναγιώτα Φατούρου 2 Σύνολα (Sets) Τα

Διαβάστε περισσότερα

Δομές Δεδομένων Ενότητα 5

Δομές Δεδομένων Ενότητα 5 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 5: Δυαδικά Δένδρα Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές

Διαβάστε περισσότερα

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

Δομές δεδομένων. Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 5η: Υλοποίηση Λεξικών με Ισοζυγισμένα Δένδρα Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΝΟΤΗΤΑ 5 ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

Διαβάστε περισσότερα

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Ορισμοί και πράξεις Αναπαράσταση δενδρικών δομών

Διαβάστε περισσότερα

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Δένδρα (Trees) Βασικές Έννοιες. Δυαδικά Δένδρα. Δυαδικά Δένδρα Αναζήτησης. AVL Δένδρα. Δένδρα: Βασικές Έννοιες Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Δένδρο: μοντέλο ιεραρχικής

Διαβάστε περισσότερα

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων

Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Εισαγωγή σε δενδρικές δομές δεδομένων, -

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ240 - Παναγιώτα Φατούρου 1 Σύνολα (Sets) q Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο U (universe) αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών σύνολα

Διαβάστε περισσότερα

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:

Διαβάστε περισσότερα

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις

Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Ενότητες 3 & 4: Δένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε μία αναδρομική συνάρτηση που θα παίρνει ως παράμετρο ένα δείκτη στη ρίζα ενός δυαδικού δένδρου και θα επιστρέφει το βαθμό του

Διαβάστε περισσότερα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα

Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 10η: Γράφοι Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 10η: Γράφοι Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 10η: Γράφοι Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 10 Γράφοι ΗΥ240 - Παναγιώτα Φατούρου 2 Γράφοι (ή Γραφήματα) Ένας γράφος

Διαβάστε περισσότερα

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου

Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research

ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research ΑΛΓΟΡΙΘΜΟΙ ΜΕ C ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής CMOR Lab Computational Methodologies and Operations Research Δέντρα (5) Τ ένα δέντρο i ένας κόμβος στο επίπεδο k j ένας κόμβος στο επίπεδο k+1 } :

Διαβάστε περισσότερα

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή

Διαβάστε περισσότερα

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 21: Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Εισαγωγή σε δενδρικές δομές δεδομένων, -Ορισμοί και πράξεις - Αναπαράσταση δενδρικών δομών δεδομένων

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων και Αλγόριθμοι Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 16 Δένδρα (Trees) 1 / 42 Δένδρα (Trees) Ένα δένδρο είναι ένα συνδεδεμένο γράφημα χωρίς κύκλους Για κάθε

Διαβάστε περισσότερα

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών : Δένδρα Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών : Ανάλυση αλγορίθμων (π.χ. δένδρα αναδρομής) Δομές δεδομένων (π.χ. δένδρα αναζήτησης) ακμή Κατηγορίες (αύξουσα

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 5 ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ

ΕΝΟΤΗΤΑ 5 ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ ΕΝΟΤΗΤΑ ΥΛΟΠΟΙΗΣΗ ΛΕΞΙΚΩΝ ΜΕ ΙΣΟΖΥΓΙΣΜΕΝΑ ΔΕΝΔΡΑ ΗΥ24 - Παναγιώτα Φατούρου 1 Ισοζυγισµένα Δένδρα Χρονική Πολυπλοκότητα αναζήτησης σε δοµές που έχουν ήδη διδάχθει: q Στατική Μη-Ταξινοµηµένη Λίστα -> Ο(n),

Διαβάστε περισσότερα

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ Δομές Δεδομένων (Εργ.) Ακ. Έτος 2017-18 Διδάσκων: Ευάγγελος Σπύρου Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης 1. Στόχος του εργαστηρίου Στόχος του δέκατου εργαστηρίου

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε

Διαβάστε περισσότερα

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 (α) Έστω Α(n) και Κ(n) ο αριθμός των ακμών και ο αριθμός των κόμβων ενός αυστηρά δυαδικού δένδρου με n φύλλα. Θέλουμε να αποδείξουμε για κάθε n 1 την πρόταση

Διαβάστε περισσότερα

ΔυαδικάΔΕΝΔΡΑΑναζήτησης

ΔυαδικάΔΕΝΔΡΑΑναζήτησης ΔυαδικάΔΕΝΔΡΑΑναζήτησης Ρίζα (κόμβος που δεν έχει γονέα) πρόγονοι απόγονοι γονέας παιδιά έντρο είναι µία συλλογή από στοιχεία, που ονοµάζονται κόµβοι και συνδέονται µεταξύ τους µε τη βοήθεια ακµών αδέλφια

Διαβάστε περισσότερα

Insert(K,I,S) Delete(K,S)

Insert(K,I,S) Delete(K,S) ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ & ΛΕΞΙΚΑ Φατούρου Παναγιώτα 1 Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενα από έναν αριθµό και

Διαβάστε περισσότερα

Ενότητα 10 Γράφοι (ή Γραφήµατα)

Ενότητα 10 Γράφοι (ή Γραφήµατα) Ενότητα 10 Γράφοι (ή γραφήµατα) ΗΥ240 - Παναγιώτα Φατούρου 1 Γράφοι (ή Γραφήµατα) Ένας γράφος αποτελείται από ένα σύνολο από σηµεία (που λέγονται κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές)

Διαβάστε περισσότερα

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

ΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 7 ο έντρο Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης έντρο Ορισµός Υλοποίηση µε Πίνακα Υλοποίηση µε είκτες υαδικό έντρο

Διαβάστε περισσότερα

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 1 2 3 4 5 πλήθος κορυφών πλήθος ακμών Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από

Διαβάστε περισσότερα

ιαφάνειες παρουσίασης #11

ιαφάνειες παρουσίασης #11 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης

Διαβάστε περισσότερα

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035). Βασικές Δοµές Δεδοµένων Σύντοµη επανάληψη (ΕΠΛ 035). Περίληψη Γραµµικές Δοµές Δεδοµένων Πίνακες Λίστες Στοίβες Ουρές Γράφοι Δέντρα Γραµµικές Δοµές Πίνακας (array) A[0] A[1] A[2] A[ ] A[n-1] Προκαθορισµένη

Διαβάστε περισσότερα

Γράφοι. κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές) οι οποίες

Γράφοι. κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές) οι οποίες Ενότητα 11 Γράφοι (ή γραφήµατα) ΗΥ240 - Παναγιώτα Φατούρου 1 Γράφοι Ένας γράφος αποτελείται από ένα σύνολο από σηµεία (που λέγονται κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές) οι οποίες συνδέουν

Διαβάστε περισσότερα

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 Χρησιµοποιούµε τη δοµή Κατ οίκον Εργασία 3 Σκελετοί Λύσεων typedef struct Node int data; struct node *lchild; struct node *rbro; node; και υποθέτουµε πως ένα τυχαίο δένδρο είναι υλοποιηµένο ως

Διαβάστε περισσότερα

Μάθημα 22: Δυαδικά δέντρα (Binary Trees)

Μάθημα 22: Δυαδικά δέντρα (Binary Trees) Trees Page 1 Μάθημα 22: Δυαδικά δέντρα (Binary Trees) Ένα δένδρο είναι δυαδικό αν όλοι οι κόμβοι του έχουν βαθμό (degree)

Διαβάστε περισσότερα

Κεφάλαιο 10 Ψηφιακά Λεξικά

Κεφάλαιο 10 Ψηφιακά Λεξικά Κεφάλαιο 10 Ψηφιακά Λεξικά Περιεχόμενα 10.1 Εισαγωγή... 213 10.2 Ψηφιακά Δένδρα... 214 10.3 Υλοποίηση σε Java... 222 10.4 Συμπιεσμένα και τριαδικά ψηφιακά δένδρα... 223 Ασκήσεις... 225 Βιβλιογραφία...

Διαβάστε περισσότερα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 3: Δένδρα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το

Διαβάστε περισσότερα

Τηλ , Fax: , URL:

Τηλ , Fax: , URL: Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Παναγιώτα Φατούρου faturu@cs.uoi.gr Τµήµα Πληροφορικής, Πανεπιστήµιο Ιωαννίνων, Τ.Θ. 1186, Γραφείο Α26, Τηλ. +30 26510 98808, Fax: +30 26510 98890,

Διαβάστε περισσότερα

Τηλ , Fax: , URL:

Τηλ , Fax: , URL: Τµήµα Πληροφορικής Πανεπιστήµιο Ιωαννίνων ΟΜΕΣ Ε ΟΜΕΝΩΝ Παναγιώτα Φατούρου faturu@cs.uoi.gr Τµήµα Πληροφορικής, Πανεπιστήµιο Ιωαννίνων, Τ.Θ. 1186, Γραφείο Α26, Τηλ. +30 26510 98808, Fax: +30 26510 98890,

Διαβάστε περισσότερα

Δέντρα (Trees) - Ιεραρχική Δομή

Δέντρα (Trees) - Ιεραρχική Δομή Δέντρα (Trees) - Ιεραρχική Δομή Εφαρμογές Δομή Οργάνωση Αρχείων Οργανογράμματα Ορισμός (αναδρομικός ορισμός): Ένα δέντρο είναι ένα πεπερασμένο σύνολο κόμβων το οποίο είτε είναι κενό είτε μη κενό σύνολο

Διαβάστε περισσότερα

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης

Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2

Διαβάστε περισσότερα

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα?

h/2. Άρα, n 2 h/2-1 h 2log(n+1). Πως υλοποιούµε τη LookUp()? Πολυπλοκότητα? Κόκκινα-Μαύρα ένδρα (Red-Black Trees) Ένα κόκκινο-µαύρο δένδρο είναι ένα δυαδικό δένδρο αναζήτησης στο οποίο οι κόµβοι µπορούν να χαρακτηρίζονται από ένα εκ των δύο χρωµάτων: µαύρο-κόκκινο. Το χρώµα της

Διαβάστε περισσότερα

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο έντρα έντρο: πρότυπο ιεραρχικής δομής. Αναπαράσταση

Διαβάστε περισσότερα

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL

Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Υλικό από τις σηµειώσεις Ν. Παπασπύρου, 2006 Δέντρα δυαδικής αναζήτησης Δενδρικές δοµές δεδοµένων στις οποίες Όλα τα στοιχεία στο αριστερό υποδέντρο της ρίζας είναι

Διαβάστε περισσότερα

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Γιάννης Κουτσονίκος Επίκουρος Καθηγητής Οργάνωση Δεδομένων Δομή Δεδομένων: τεχνική οργάνωσης των δεδομένων με σκοπό την

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 2η: Στοίβες Ουρές - Λίστες Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 2η: Στοίβες Ουρές - Λίστες Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 2η: Στοίβες Ουρές - Λίστες Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 2 Στοίβες Ουρές - Λίστες ΗΥ240 - Παναγιώτα Φατούρου 2 Λίστες

Διαβάστε περισσότερα

υαδικό έντρο Αναζήτησης (BSTree)

υαδικό έντρο Αναζήτησης (BSTree) Εργαστήριο 6 υαδικό έντρο Αναζήτησης (BSTree) Εισαγωγή Οι περισσότερες δοµές δεδοµένων, που εξετάσαµε µέχρι τώρα (λίστες, στοίβες, ουρές) ήταν γραµ- µικές (ή δοµές δεδοµένων µιας διάστασης). Στην παράγραφο

Διαβάστε περισσότερα

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών έντρα ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο έντρα έντρο: πρότυπο ιεραρχικής δομής.

Διαβάστε περισσότερα

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες

Διαβάστε περισσότερα

5 ΔΕΝΤΡΑ (Trees) Σχήµα 5.1 : ενδροειδής αναπαράσταση αρχείων στα Windows. έντρα. \ {root directory} Accessories. Program Files.

5 ΔΕΝΤΡΑ (Trees) Σχήµα 5.1 : ενδροειδής αναπαράσταση αρχείων στα Windows. έντρα. \ {root directory} Accessories. Program Files. 5 ΔΕΝΤΡΑ (Trees) Oι περισσότερες δοµές δεδοµένων που εξετάσαµε µέχρι τώρα (λίστες, στοίβες, ουρές) ήταν γραµµικές (ή δοµές δεδοµένων µιας διάστασης). Στην παράγραφο αυτή θα ασχοληθούµε µε τις µή-γραµµικές

Διαβάστε περισσότερα

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (TREES) B C D E F G H I J K L M Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Δέντρα Δυαδικά Δέντρα Δυαδικά Δέντρα Αναζήτησης (inary Search Trees) http://aetos.it.teithe.gr/~demos/teaching_r.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής

Διαβάστε περισσότερα

υαδικά δέντρα αναζήτησης

υαδικά δέντρα αναζήτησης υαδικά δέντρα αναζήτησης οµές εδοµένων 3 ο εξάµηνο Ορισµός δυαδικού δέντρου αναζήτησης Σ ένα δυαδικό δέντρο αναζήτησης, για κάθε κόµβο Χ, Όλα τα κλειδιά(αντικείµενα) στο αριστερό υποδέντρο του Χ έχουν

Διαβάστε περισσότερα

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

6η Διάλεξη Διάσχιση Γράφων και Δέντρων ΘΕΩΡΙΑ ΓΡΑΦΩΝ 6 η Διάλεξη Διάσχιση Γράφων και Δέντρων Αλγόριθμος αναζήτησης σε Βαθος Αλγόριθμος αναζήτησης κατά Πλάτος Αλγόριθμοι για Δένδρα Εύρεση ελαχίστων Γεννητορικών (Επικαλύπτοντα) Δένδρων Διάσχιση

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΠΝΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΣ ΔΔΟΜΝΩΝ ΚΙ ΛΓΟΡΙΘΜΟΙ ΗΜΡΟΜΗΝΙ: 14/11/2018 ΔΙΓΝΩΣΤΙΚΟ ΠΝΩ Σ ΔΝΔΡΙΚΣ ΔΟΜΣ ΚΙ ΓΡΦΟΥΣ Διάρκεια: 45 λεπτά Ονοματεπώνυμο:. ρ. Ταυτότητας:. ΒΘΜΟΛΟΓΙ ΣΚΗΣΗ ΒΘΜΟΣ

Διαβάστε περισσότερα

Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα

Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα Ορέστης Τελέλης tllis@unipi.r Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 1 / 27 έντρα έντρο είναι απλό συνδεδεµένο µη

Διαβάστε περισσότερα

AVL-trees C++ implementation

AVL-trees C++ implementation Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ AVL-trees C++ implementation Δομές Δεδομένων Μάριος Κενδέα 31 Μαρτίου 2015 kendea@ceid.upatras.gr Εισαγωγή (1/3) Δυαδικά Δένδρα Αναζήτησης:

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 3 Δέντρα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 3 Δέντρα ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 231: Δομές Δεδομένων και Αλγόριθμοι Εαρινό Εξάμηνο 2013 ΑΣΚΗΣΗ 3 Δέντρα Διδάσκων Καθηγητής: Παναγιώτης Ανδρέου Ημερομηνία Υποβολής: 19/03/2013 Ημερομηνία Παράδοσης:

Διαβάστε περισσότερα

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 20: Δυαδικό Δέντρο Αναζήτησης Δυαδικό δέντρο Κάθε κόμβος «γονέας» περιέχει δύο δείκτες που δείχνουν σε δύο κόμβους «παιδιά» του ιδίου τύπου. Αν οι δείκτες προς αυτούς

Διαβάστε περισσότερα

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Κεφάλαιο 11 Ένωση Ξένων Συνόλων Κεφάλαιο 11 Ένωση Ξένων Συνόλων Περιεχόμενα 11.1 Εισαγωγή... 227 11.2 Εφαρμογή στο Πρόβλημα της Συνεκτικότητας... 228 11.3 Δομή Ξένων Συνόλων με Συνδεδεμένες Λίστες... 229 11.4 Δομή Ξένων Συνόλων με Ανοδικά

Διαβάστε περισσότερα

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός. Καθηγήτρια Μαρία Σατρατζέμη Ενότητα 10: Πλήρη Δυαδικά Δέντρα, Μέγιστα/Ελάχιστα Δέντρα & Εισαγωγή στο Σωρό- Ο ΑΤΔ Μέγιστος Σωρός Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1

Αναζήτηση σε Γράφους. Μανόλης Κουμπαράκης. ΥΣ02 Τεχνητή Νοημοσύνη 1 Αναζήτηση σε Γράφους Μανόλης Κουμπαράκης ΥΣ02 Τεχνητή Νοημοσύνη 1 Πρόλογος Μέχρι τώρα έχουμε δει αλγόριθμους αναζήτησης για την περίπτωση που ο χώρος καταστάσεων είναι δένδρο (υπάρχει μία μόνο διαδρομή

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ240 - Παναγιώτα Φατούρου Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο U αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενων από έναν

Διαβάστε περισσότερα

ιαφάνειες παρουσίασης #10 (β)

ιαφάνειες παρουσίασης #10 (β) ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)

Διαβάστε περισσότερα

3 Αναδροµή και Επαγωγή

3 Αναδροµή και Επαγωγή 3 Αναδροµή και Επαγωγή Η ιδέα της µαθηµατικής επαγωγής µπορεί να επεκταθεί και σε άλλες δοµές εκτός από το σύνολο των ϕυσικών N. Η ορθότητα της µαθηµατικής επαγωγής ϐασίζεται όπως ϑα δούµε λίγο αργότερα

Διαβάστε περισσότερα

Δομές Δεδομένων και Αλγόριθμοι (Γ εξάμηνο) Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Ηπείρου. Άσκηση εργαστηρίου #6 (Υλοποίηση δυαδικού δένδρου αναζήτησης)

Δομές Δεδομένων και Αλγόριθμοι (Γ εξάμηνο) Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Ηπείρου. Άσκηση εργαστηρίου #6 (Υλοποίηση δυαδικού δένδρου αναζήτησης) Δομές Δεδομένων και Αλγόριθμοι (Γ εξάμηνο) Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Ηπείρου Γκόγκος Χρήστος 04/12/2014 Άσκηση εργαστηρίου #6 (Υλοποίηση δυαδικού δένδρου αναζήτησης) Στην εργασία αυτή παρουσιάζεται

Διαβάστε περισσότερα

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής

Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό

Διαβάστε περισσότερα

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων

Διαβάστε περισσότερα

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

Διαβάστε περισσότερα

Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά

Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά EPL231: Δομές Δεδομένων και Αλγόριθμοι Εργαστήριο 5 Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ με αλφαβητική σειρά Αναδρομή Η αναδρομή εμφανίζεται όταν μία διεργασία καλεί τον εαυτό της Υπάρχουν

Διαβάστε περισσότερα

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής Αναδροµή Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής 1 Αναδροµή Βασική έννοια στα Μαθηµατικά και στην Πληροφορική.

Διαβάστε περισσότερα

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

Διαβάστε περισσότερα

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα Δένδρα Δένδρα Ειδική κατηγορία γραφημάτων: συνεκτικά γραφήματα που δεν περιέχουν απλά κυκλώματα [1857] Arthur Cayley: για απαρίθμηση ορισμένων ειδών χημικών ενώσεων Χρησιμοποιούνται σε πληθώρα προβλημάτων,

Διαβάστε περισσότερα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα Φεβρουαρίου 0 / ένδρα Ενα δένδρο είναι

Διαβάστε περισσότερα

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί

Εισαγωγή ενός νέου στοιχείου. Επιλογή i-οστoύ στοιχείου : Εύρεση στοιχείου με το i-οστό μικρότερο κλειδί Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ Ουρές Προτεραιότητας (Priority Queues) Θεωρούµε ότι τα προς αποθήκευση στοιχεία έχουν κάποια διάταξη (καθένα έχει µια προτεραιότητα). Τα προς αποθήκευση στοιχεία είναι

Διαβάστε περισσότερα

Οι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

Οι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες: υαδικά έντρα Αναζήτησης (Binary Search Trees) Ορισµός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόµενα στο αριστερό υποδέντρο του t είναι

Διαβάστε περισσότερα

Δομές Δεδομένων - Εργαστήριο 5. Ουρές Προτεραιότητας

Δομές Δεδομένων - Εργαστήριο 5. Ουρές Προτεραιότητας Ουρές Προτεραιότητας Ουρά Προτεραιότητας (Priority Queue) Μια συλλογή αντικειμένων που χαρακτηρίζονται από μια συγκρίσιμη προτεραιότητα. Έχει την λογική εικόνα μιας δομής δεδομένων όπου, αντικείμενα εισέρχονται

Διαβάστε περισσότερα

Δομές Δεδομένων. Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman. Καθηγήτρια Μαρία Σατρατζέμη

Δομές Δεδομένων. Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman. Καθηγήτρια Μαρία Σατρατζέμη Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΗΥ360 Αρχεία και Βάσεις εδοµένων

ΗΥ360 Αρχεία και Βάσεις εδοµένων ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης Tutorial B-Trees, B+Trees Μπαριτάκης Παύλος 2018-2019 Ιδιότητες B-trees Χρήση για μείωση των προσπελάσεων στον δίσκο Επέκταση των Binary Search Trees

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS) ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS) Ταχεία Αναζήτηση Σε πίνακα: δυαδική αναζήτηση (binary search) σε ταξινοµηµένο πίνακα O(log n) Σε δένδρο: αναζήτηση σε ισοζυγισµένο δένδρο O(log n) Σε λίστα: Μπορούµε

Διαβάστε περισσότερα

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις

Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Ενότητα 1: Εισαγωγή Ασκήσεις και Λύσεις Άσκηση 1 Αποδείξτε τη µεταβατική και τη συµµετρική ιδιότητα του Θ. Λύση Μεταβατική Ιδιότητα (ορισµός): Αν f(n) = Θ(g(n)) και g(n) = Θ(h(n)) τότε f(n)=θ(h(n)). Για

Διαβάστε περισσότερα

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος

ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2016-2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 19 Δεκεμβρίου 2016, ώρα 23:59. Τρόπος

Διαβάστε περισσότερα

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε:

Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι

Διαβάστε περισσότερα

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:

ΟιβασικέςπράξειςπουορίζουντονΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες: Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι

Διαβάστε περισσότερα

Ενότητα 2 Στοίβες Ουρές - Λίστες

Ενότητα 2 Στοίβες Ουρές - Λίστες Ενότητα 2 Στοίβες Ουρές - Λίστες ΗΥ240 - Παναγιώτα Φατούρου 1 Λίστες Γραµµική λίστα (linear list) είναι ένα σύνολο από έστω n 0 στοιχεία ή κόµβους, e 1,..., e n, τα οποία είναι διατεταγµένα µε γραµµική

Διαβάστε περισσότερα