Κύρια σηµεία για µελέτη. έντρα. Ορολογία δέντρων. Τι είναι δέντρο



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

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

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

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

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

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

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

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

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

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

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

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

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

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

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

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

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

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

Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1

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

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

Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5

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

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

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

ΑΠΛΗ ΚΛΗΡΟΝΟΜΙΚΟΤΗΤΑ

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

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

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

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

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

Οντοκεντρικός Προγραμματισμός

Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας

Βασικές Έννοιες Θεωρίας Γραφημάτων

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

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

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

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

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

Οντοκεντρικός Προγραμματισμός

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

Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών

Διάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις

AVL-trees C++ implementation

Κληρονομικότητα. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Java Κληρονομικότητα 1

έντρα ομές εδομένων 3ο εξάμηνο ιδάσκων: Χρήστος ουλκερίδης ιαφάνειες προσαρμοσμένες από το υλικό της Μαρίας Χαλκίδη

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

Κλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1

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

Κλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack

Βασικές Έννοιες Θεωρίας Γραφημάτων

Red-black δέντρα (Κεφ. 5)

έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα

Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

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

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

Οντοκεντρικός Προγραμματισμός

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

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

ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις

Δοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης

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

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

Ισοζυγισμένα υαδικά έντρα Αναζήτησης

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. Συλλογές και Επαναλήπτες. Συλλογές - Collections

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πολυμορφισμός Αφηρημένες κλάσεις Interfaces (διεπαφές)

Wrapper Classes, Abstract Classes and Interfaces

Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα.

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

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

Εισαγωγή στον Προγ/μό Η/Υ

ΕΠΛ 231 Δομές Δεδομένων και Αλγόριθμοι 4-1

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

Εργαστήριο 02: Προγραμματισμός με Γενικούς Τύπους (JAVA Generics) ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι

Red- black δέντρα Εκτενείς Δομές Δεδομένων (Κεφ. 5)

Αντικειμενοστρεφής Προγραμματισμός

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

Ουρές προτεραιότητας

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 4η Θεωρία Γραφηµάτων

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Κεφάλαιο 7 Λεξικά και Δυαδικά Δένδρα Αναζήτησης

Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Μέθοδοι

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

Προγραμματισμός Η/Υ. Ενότητα 2β: Εισαγωγή στη C (Μέρος Δεύτερο)

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

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων

Transcript:

Κύρια σηµεία για µελέτη έντρα Stock Fraud Make Money Fast! Ponzi Scheme ank Robbery Ο ΑΤ του δέντρου (..1) Preorder και postorder διασχίσεις (..) Ο ΑΤ του δυαδικού δέντρου(..) Inorder διάσχιση (..) Ηδιάσχισητουuler (..) Template method pattern οµές δεδοµένων για δέντρα (..4) Εφαρµογές σε Java (http://jdsl.org) 4/11/005 4:49 PM έντρα 1 4/11/005 4:49 PM έντρα Τι είναι δέντρο Στην επιστήµη υπολογιστών, το δέντρο omputers R Us είναι ένα αφηρηµένο µοντέλο ιεραρχικής δόµησης. Ένα δέντρο αποτελείται από κόµβους µε σχέσεις πατέρα παιδιού. Sales Manufacturing Εφαρµογές σε: Χάρτες οργανισµών US International Laptops esktops Συστήµατα αρχείων urope sia anada Προγραµµατιστικά περιβάλλοντα 4/11/005 4:49 PM έντρα R& Ορολογία δέντρων Κόµβος Ρίζα: ένας κόµβος χωρίς πατέρα () Εσωτερικός κόµβος: Ένας κόµβος µε τουλάχιστον ένα παιδί (,,, F) Εξωτερικός κόµβος(ή φύλλο ): ένας κόµβος χωρίς παιδιά (, I, J, K, G, H, ) Πρόγονοι ενός κόµβου: κόµβος πατέρας,παππούς, προπάππος κλπ. Βάθος κόµβου: οαριθµός των κόµβων προγόνων. Ύψος δέντρου: το µέγιστο βάθος οποιουδήποτε κόµβου του δέντρου.() Απόγονος κόµβου: παιδί, εγγόνι. Υποδέντρο: ένα δέντρο αποτελούµενο από έναν κόµβο και τους απογόνους του. υποδέντρο 4/11/005 4:49 PM έντρα 4 F I J K G H 1

Ο ΑΤ του δέντρου Χρησιµοποιούµε θέσειςγια να γενικεύσουµε τους κόµβους. Γενικές µέθοδοι: integer size() boolean ismpty() objectiterator elements() positioniterator positions() Συµπληρωµατικές µέθοδοι: position root() position parent(p) positioniterator children(p) Μέθοδοι ερωτηµάτων: boolean isinternal(p) boolean isxternal(p) boolean isroot(p) Μέθοδοι αναβάθµισης: swaplements(p, q) object replacelement(p, o) Πρόσθετοι µέθοδοι αναβάθµισης µπορεί να ορίζονται από τις δοµές δεδοµένων που υλοποιούν τον ΑΤ του δέντρου. 4/11/005 4:49 PM έντρα 5 Preorder διάσχιση Μια διάσχιση επισκέφτεται τους κόµβους του δέντρου µε συστηµατικό τρόπο. Σε µια preorder διάσχιση, η επίσκεψη σε έναν κόµβο γίνεται πριν από την επίσκεψη στους απογόνους του. Εφαρµογή: Εκτύπωση 1 δοµηµένου εγγράφου. Make Money Fast! 5 9 1. Motivations. Methods References 4 1.1 Greed 1. vidity 6 7 8.1 Stock Fraud lgorithm preorder(v) visit(v) for each child w of v preorder (w). Ponzi Scheme. ank Robbery 4/11/005 4:49 PM έντρα 6 Postorder διάσχιση Σε µια postorder διάσχιση, η επίσκεψη σε έναν κόµβο γίνεται µετά από την επίσκεψη στους απογόνους του. Εφαρµογή: υπολογισµός του χώρου που χρησιµοποιείται από αρχεία σε έναν κατάλογο και τους υποκαταλόγους του. 1 h1c.doc K homeworks/ h1nc.doc K 9 R.java 10K cs16/ lgorithm postorder(v) for each child w of v postorder (w) visit(v) 7 programs/ 4 5 6 Stocks.java 5K Robot.java 0K todo.txt 1K 4/11/005 4:49 PM έντρα 7 8 υαδικό δέντρο υαδικό είναι ένα δέντρο µε τις ακόλουθες ιδιότητες: Κάθε εσωτερικός κόµβος έχει δύο παιδιά Τα παιδιά ενός κόµβου αποτελούν ένα διατεταγµένο δέντρο. Αποκαλούµε ταπαιδιάενός εσωτερικού κόµβου αριστερό και δεξιό παιδί. Εναλλακτικός αναδροµικός ορισµός: ένα δυαδικό δέντρο είναι είτε: Ένα δέντρο αποτελούµενο από ένα µόνο κόµβο είτε Εφαρµογές: Αριθµητικές εκφράσεις ιεργασίες αποφάσεων Αναζητήσεις Ένα δέντρο του οποίου η ρίζα έχει ένα διατεταγµένο ζευγάρι από παιδιά, το καθένα εκ των οποίων H I είναι δυαδικό δέντρο. 4/11/005 4:49 PM έντρα 8 F G

έντρα αριθµητικών εκφράσεων Σε ένα δυαδικό δέντρο που σχετίζεται µε µια αριθµητική έκφραση, Οι εσωτερικοί κόµβοι είναι: τελεστές ΟΙ εξωτερικοί κόµβοι είναι: τελεστέοι Παράδειγµα: το δέντρο αριθµητικής έκφρασης για την έκφραση ( (a 1) ( b)) είναι το παρακάτω. a 1 b έντρα Απόφασης (decision trees) Σε ένα δυαδικό δέντρο το οποίο σχετίζεται µε µια διαδικασία απόφασης Οι εσωτερικοί κόµβοι είναι: ερωτήσεις µε απάντησηναιήόχι Οι εξωτερικοί κόµβοι είναι: αποφάσεις Παράδειγµα: απόφαση για δείπνο Yes How about coffee? Want a fast meal? On expense account? Starbucks Spike s l Forno afé Paragon No Yes No Yes No 4/11/005 4:49 PM έντρα 9 4/11/005 4:49 PM έντρα 10 Ιδιότητες των δυαδικών δέντρων ΟΑΤ τουδυαδικούδέντρου Συµβολισµός n αριθµός κόµβων e αριθµός εξωτερικών κόµβων i αριθµός εσωτερικών κόµβων h ύψος δέντρου Ιδιότητες που ισχύουν: e = i 1 n = e 1 h i h (n 1)/ e h h log e h log (n 1) 1 ΟΑΤ τουδυαδικού δέντρου αποτελεί προέκταση του ΑΤ του δέντρου, κληρονοµώντας όλες τις µεθόδους του. Επιπλέον µέθοδοι: position lefthild(p) position righthild(p) position sibling(p) Μέθοδοι αναβάθµισης µπορεί να ορίζονται από τις δοµές δεδοµένων που υλοποιούν τον ΑΤ του δυαδικού δέντρου. 4/11/005 4:49 PM έντρα 11 4/11/005 4:49 PM έντρα 1

Inorder διάσχιση Σε µια Inorder διάσχιση η επίσκεψη στον κόµβο γίνεται µετά την επίσκεψη στοαριστερόυποδέντροκαι πριν την επίσκεψη στο δεξί υποδέντρο. Εφαρµογή: Ζωγραφίστε ένα δυαδικό δέντρο 6 x(v) = inorder τάξη του v y(v) = βάθος του v 1 4 5 lgorithm inorder(v) inorder (lefthild (v)) visit(v) inorder (righthild (v)) 7 9 4/11/005 4:49 PM έντρα 1 8 Εκτύπωση αριθµητικών εκφράσεων Εξειδίκευση µιας inorder διάσχισης Εκτύπωσε τον τελεστή ή τον τελεστέο όταν επισκέφτεσαι τον κόµβο εκτύπωσε ( πριν την διάσχιση του αριστερού υποδέντρου εκτύπωσε ) µετά την διάσχιση του δεξιού υποδέντρου. a 1 b lgorithm printxpression(v) print( ( ) inorder (lefthild (v)) print(v.element ()) inorder (righthild (v)) print ( ) ) (( (a 1)) ( b)) 4/11/005 4:49 PM έντρα 14 Αξιολόγηση αριθµητικών εκφράσεων Εξειδίκευση της postorder διάσχισης Μια αναδροµική µέθοδος επιστρέφει την τιµή ενός υποδέντρου. Κατά την επίσκεψη ενός εσωτερικού κόµβου, συνδυάζονται οι τιµές των υποδέντρων. 5 1 lgorithm evalxpr(v) if isxternal (v) return v.element () else x evalxpr(lefthild (v)) y evalxpr(righthild (v)) operator stored at v return x y 4/11/005 4:49 PM έντρα 15 ιάσχιση του uler Γενική διάσχιση ενός δυαδικού δέντρου. Περιλαµβάνει τις διασχίσεις preorder, postorder και inorder Γίνεται κυκλική διάσχιση του κόµβουκαιηεπίσκεψησεκάθεκόµβο γίνεται τρεις φορές: Στα αριστερά (preorder) Από κάτω (inorder) Στα δεξιά (postorder) L R 4/11/005 4:49 PM έντρα 16 5 1 4

Template Method Pattern Γενικός αλγόριθµος ο οποίος µπορεί να εξειδικευθεί µε τον επαναορισµό συσκεκριµένων βηµάτων Υλοποιείται µέσω µιας Java class Οι µέθοδοι επίσκεψης µπορούν να επαναοριστούν από υποκλάσεις Template method eulertour Καλείται αναδροµικά στο δεξί και στο αριστερό παιδί public abstract class ulertour { protected inarytree tree; protected void visitxternal(position p, Result r) { } protected void visitleft(position p, Result r) { } protected void visitelow(position p, Result r) { } protected void visitright(position p, Result r) { } protected Object eulertour(position p) { Result r = new Result(); if tree.isxternal(p) { visitxternal(p, r); } else { visitleft(p, r); r.leftresult = eulertour(tree.lefthild(p)); visitelow(p, r); r.rightresult = eulertour(tree.righthild(p)); visitright(p, r); return r.finalresult; } Ένα Result αντικείµενο µε πεδία leftresult, rightresult και finalresult ανιχνεύει το output της κλήσης της αναδροµικής συνάρτησης eulertour 4/11/005 4:49 PM έντρα 17 Εξειδικεύσεις του ulertour είχνουµε πώςνα εξειδικεύσουµε την class ulertour για αξιολόγηση αριθµητικών εκφράσεων. Υποθέσεις Οι εξωτερικοί κόµβοι αποθηκεύουν ακέραια αντικείµενα Οι εσωτερικοί κόµβοι αποθηκεύουν Operator αντικείµενα που υποστηρίζουν µεθόδους operation (Integer, Integer) public class valuatexpression extends ulertour { protected void visitxternal(position p, Result r) { r.finalresult = (Integer) p.element(); } protected void visitright(position p, Result r) { Operator op = (Operator) p.element(); r.finalresult = op.operation( (Integer) r.leftresult, (Integer) r.rightresult ); } } 4/11/005 4:49 PM έντρα 18 οµές δεδοµένων για δέντρα Ένας κόµβος αναπαρίσταται από ένα αντικείµενο στο οποίο αποθηκεύονται Ένα στοιχείο Οκόµβος πατέρας Η ακολουθία από κόµβους παιδιά Αντικείµενα κόµβων υλοποιούν τον ΑΤ της θέσης. F 4/11/005 4:49 PM έντρα 19 F οµές δεδοµένων για δυαδικά δέντρα Ένας κόµβος αναπαρίσταται από ένα αντικείµενο στο οποίο αποθηκεύονται Ένα στοιχείο Οκόµβος πατέρας Αριστερός κόµβος παιδί εξιός κόµβος παιδί Αντικείµενα κόµβων υλοποιούν τον ΑΤ της θέσης. 4/11/005 4:49 PM έντρα 0 5

Υλοποίηση σε JV Interface για δέντρο Ιnterface για δυαδικό δέντρο που επεκτείνει το δέντρο Κλάσεις υλοποιούν το δέντρο και το δυαδικό δέντρο και παρέχουν onstructors Μεθόδους αναβάθµισης Μεθόδους εκτύπωσης Παράδειγµα αναβαθνίσεων για δυαδικά δέντρα expandxternal(v) removebovexternal(w) expandxternal(v) v 4/11/005 4:49 PM έντρα 1 v w removebovexternal(w) έντρα σε JSL Η JSL είναι µια βιβλιοθήκη για δοµές δεδοµένων σε Java interfaces δέντρων σε JSL Επιθεωρήσιµο υαδικό δέντρο Επιθεωρήσιµο δέντρο υαδικό δέντρο έντρο Οι επιθεωρήσιµες εκδόσεις δεν έχουν µεθόδους αναβάθµισης Κλάσεις για δέντρα σε JSL NodeinaryTree NodeTree Η JSL αναπτύχθηκε στο: rown s enter for Geometric omputing JSL documentation and tutorials at http://jdsl.org InspectableTree InspectableinaryTree Tree inarytree 4/11/005 4:49 PM έντρα 6