υαδικό έντρο Αναζήτησης (BSTree)
|
|
- Φῆλιξ Γκόφας
- 9 χρόνια πριν
- Προβολές:
Transcript
1 Εργαστήριο 6 υαδικό έντρο Αναζήτησης (BSTree) Εισαγωγή Οι περισσότερες δοµές δεδοµένων, που εξετάσαµε µέχρι τώρα (λίστες, στοίβες, ουρές) ήταν γραµ- µικές (ή δοµές δεδοµένων µιας διάστασης). Στην παράγραφο αυτή ϑα ασχοληθούµε µε τις µηγραµµικές δοµές δεδοµένων, που ονοµάζονται δέντρα. Συναντάµε τα δέντρα σε πάρα πολλές εφαρ- µογές της επιστήµης των υπολογιστών. Κλασσικό παράδειγµα αποτελεί η οργάνωση του συστήµατος των αρχείων, µε τη µορφή δέντρου, που ακολουθούν τα περισσότερα λειτουργικά συστήµατα (π.χ. DOS, UNIX, σχήµα 6.1). Τα δέντρα χρησιµοποιούνται επίσης πολύ συχνά, σαν µοντέλα αναπαράστασης προβληµάτων της καθηµερινής µας Ϲωής. Χαρακτηριστικά παραδείγµατα αποτελούν το γενεαλογικό δέντρο και η δενδροειδής αναπαράσταση αγώνων κυπέλου, µεταξύ οµάδων (σχήµα 6.2). \ {root directory Accessories Program Files MSoffice2000 Autoexec.bat Chkdsk.exe NetMeeting Windows Command.com JavaFiles Readme.txt Programs Program1.java Program2.java Σχήµα 6.1: ενδροειδής αναπαράσταση αρχείων στα Windows Παρά το γεγονός ότι η έννοια του δέντρου γίνεται έµµεσα κατανοητή από έναν οποιονδήποτε οπτικό τρόπο αναπαράστασης του, η δοµή δεδοµένων δέντρο πρέπει να οριστεί µε έναν αυστηρά µαθηµατικό τρόπο. Υπάρχουν πολλοί ισοδύναµοι ορισµοί ενός δέντρου, δίνουµε στη συνέχεια δύο από αυτούς. Ορισµός 6.1. έντρο (tree) είναι ένα σύνολο Τ από κόµβους (nodes), τέτοιο ώστε είτε: Το Τ είναι κενό ή Το Τ περιλαµβάνει ένα ξεχωριστό κόµβο, R, που ονοµάζεται ϱίζα (root ) του Τ και οι υπόλοιποι κόµβοι Τ - {R χωρίζονται σε µηδέν ή περισσότερα σύνολα κόµβων, T 1, T 2,..., T n, που είναι 17
2 ÁÑÇÓ ÏËÕÌÐÉÁÊÏÓ ÐÁÏÊ ÏÖÇ ÁÑÇÓ ÏÖÇ ÁÑÇÓ ÇÑÁÊËÇÓ ÐÁÏ ÄÏÎÁ AEK ÐÁÏ AEK AEK ÊÕÐÅËÏÕ ÏÓ Σχήµα 6.2: Αναπαράσταση αγώνων κυπέλου µε µορφή δέντρου ξένα µεταξύ τους και τα οποία είναι µε τη σειρά τους δέντρα. Τα T 1, T 2,..., T n, ονοµάζονται υπο-δέντρα του Τ. Ορισµός 6.2. έντρο είναι µία συλλογή από στοιχεία, που ονοµάζονται κόµβοι. Οι κόµβοι του δέντρου συνδέονται µεταξύ τους µε τη ϐοήθεια ακµών (arcs) µε ϐάση τους εξής κανόνες: Υπάρχει ένας και µόνον ένας κόµβος (ϱίζα - root) στον οποίο δεν καταλήγει καµία ακµή Σε όλους τους υπόλοιπους κόµβους καταλήγει υποχρεωτικά µία και µόνο µία ακµή. Ο πρώτος ορισµός είναι αναδροµικός και είναι καλό να τον έχει κανείς υπ όψη του, όταν ϑα συζητήσουµε αργότερα, τις διάφορες ιδιότητες και τους αλγόριθµους επεξεργασίας των δέντρων. Ο δεύτερος ορισµός ϐρίσκεται σε µεγαλύτερη αντιστοιχία µε τον οπτικό τρόπο αναπαράστασης ενός δέντρου. Ας εξετάσουµε τους δύο ορισµούς χρησιµοποιώντας για παράδειγµα το δέντρο του σχήµατος 6.3. Σύµφωνα µε τον δεύτερο ορισµό ϐλέπουµε ότι µόνο στον κόµβο A, που αποτελεί τη ϱίζα του δέντρου δεν καταλήγει καµία ακµή, ενώ σε όλους τους άλλους κόµβους καταλήγει µία µόνο ακµή. Παρατηρήστε ότι συνήθως σχεδιάζουµε ένα δέντρο µε τη ϱίζα του επάνω και τους υπόλοιπους κόµβους από κάτω (παρόλο που αυτό µοιάζει παράξενο!). Σύµφωνα µε τον πρώτο ορισµό το δέντρο αποτελείται από ένα σύνολο 13 κόµβων : A B C D E F G H I J K L M Σχήµα 6.3: Συνήθης οπτική αναπαράσταση δέντρου 18
3 T = {A, B,C, D,E, F,G, H,I,J,K, L,M Η ϱίζα του είναι A και το σύνολο T {A χωρίζεται σε τρία υπο-δέντρα : T 1 = {B,E, F, G, T 2 = {C, H, I και T 3 = {D, J,K,L, M Τα T 1, T 2 και T 3 έχουν σαν ϱίζα τον κόµβο B, C, και D αντίστοιχα. Τα σύνολα T 1 {B, T 2 {C και T 3 {D χωρίζονται αντίστοιχα στα υπο-δέντρα : T 1.1 = {E, T 1.2 = {F, T 1.3 = {G T 2.1 = {H, T 2.2 = {I T 3.1 = {J, T 3.2 = {K, T 3.3 = {L, T 3.4 = {M Κάθε ένα από τα τελευταία υπο-δέντρα είναι σύνολα που περιέχουν έναν µόνον κόµβο. Ο κόµβος αυτός αποτελεί και τη ϱίζα του αντίστοιχου υπο-δέντρου και αν αφαιρεθεί το σύνολο που προκύπτει είναι το κενό (περίπτωση (α) του ορισµού). Μερικοί ακόµα ορισµοί-ιδιότητες των δέντρων είναι απαραίτητοι : Κάθε κόµβος (εκτός από τη ϱίζα) έχει ακριβώς έναν κόµβο από πάνω του, ο οποίος ονοµάζεται πατέρας (father). Για παράδειγµα στο δέντρο του παραπάνω σχήµατος, ο A είναι ο πατέρας του B και ο D είναι ο πατέρας του K. Οι κόµβοι που ϐρίσκονται ακριβώς κάτω από έναν κόµβο (συνδέονται µε ακµές που ξεκινούν από αυτόν), ονοµάζονται παιδιά του (children). Πολλές ϕορές µπορεί να αναφερόµαστε (κατ αναλογία µε τα γενεαλογικά δέντρα) στους απογόνους (successors) ή προγόνους (ancestors) ενός κόµβου. Στο παράδειγµα του παραπάνω σχήµατος, οι κόµβοι E, F, G είναι παιδιά του κόµβου B. Οι κόµβοι H και I είναι απόγονοι του A (όχι οι µοναδικοί) και ο κόµβος G έχει πρόγονο τον Α. Ενας κόµβος ο οποίος δεν έχει κανένα µη-κενό υπό-δέντρο (κόµβος χωρίς παιδιά) ονοµάζεται τερµατικός (terminal) κόµβος ή ϕύλλο (leaf ) του δέντρου. Στο δέντρο του σχήµατος 6.3, τερ- µατικοί κόµβοι είναι οι E, F,G, H,I,J,K, L και M. Ολοι οι υπόλοιποι κόµβοι του δέντρου ονοµάζονται µη-τερµατικοί (non-terminals). Πολλές ϕορές οι τερµατικοί κόµβοι ενός δέντρου αναφέρονται και σαν εξωτερικοί (externals) ενώ οι µη τερµατικοί σαν εσωτερικοί (internals). Μια ακολουθία κόµβων, ενός δέντρου, οι οποίοι συνδέονται διαδοχικά µεταξύ τους µε τη ϐοή- ϑεια ακµών, ονοµάζεται µονοπάτι (path). Οι ακολουθίες < A, B,G > και < A, D,K > είναι δύο από τα µονοπάτια του δέντρου του σχήµατος 6.3. Οι κόµβοι ενός δέντρου χωρίζονται σε επίπεδα ( levels). Ενας κόµβος ϐρίσκεται στο επίπεδο N, εάν N είναι ο αριθµός των ακµών του µονοπατιού, που συνδέει τη ϱίζα µε τον κόµβο αυτό. Στο παράδειγµα του σχήµατος 6.3, ο A ανήκει στο επίπεδο 0, οι B,C, D ανήκουν στο επίπεδο 1, ενώ οι κόµβοι E, F, G, H, I,J,K, L,M αποτελούν το επίπεδο 2. Ορίζουµε σαν ύψος (heigth) ή ϐάθος (depth) ενός κόµβου τον αριθµό του επιπέδου στο οποίο ϐρίσκεται ο κόµβος αυτός. Το ύψος (ή ϐάθος) ενός δέντρου ταυτίζεται µε το µέγιστο ύψος (ή ϐάθος) των κόµβων του δέντρου. Ονοµάζουµε ϐαθµό ( degree) ενός κόµβου τον αριθµό των υπό-δέντρων του Ονοµάζουµε δάσος (forest) ένα σύνολο από N (N 0) δέντρα, που είναι ξένα µεταξύ τους. 19
4 D B F A C G E Σχήµα 6.4: υαδικό δέντρο υαδικά δέντρα Ορισµός 6.3. υαδικό δέντρο (binary tree) είναι ένα δέντρο του οποίου κάθε κόµβος έχει το πολύ δύο υπο-δέντρα. Τα υπο-δέντρα του δυαδικού δέντρου ονοµάζονται αριστερό και δεξιό υπο-δέντρο αντίστοιχα (σχήµα 6.4). Κατασκευή υαδικού έντρου µε τη ϐοήθεια δεικτών Μπορούµε να αναπαραστήσουµε ένα δυαδικό δέντρο µε τη ϐοήθεια µιας δυναµικής δοµής δεδοµένων. Κάθε κόµβος του δέντρου αναπαρίσταται µε τη ϐοήθεια µιας τριάδας η οποία περιλαµβάνει ένα πεδίο για την αποθήκευση της πληροφορίας του κόµβου και δύο πεδία τύπου δείκτη σε κόµβο δέντρου, που δείχνουν στο αριστερό και δεξιό υπο-δέντρο αντίστοιχα. Η τριάδα αυτή των δηλώσεων ορίζονται σαν µέλη της κλάσης TreeNode. ίνεται επίσης στα πλαίσια της κλάσης η πράξη δηµιουργίας ενός τερµατικού κόµβου : TreeNode.java public class TreeNode { public TreeNode (Comparable obj ) {... public Comparable getnodedata ( ) {... public TreeNode getleftnode ( ) {... public TreeNode getrightnode ( ) {... public boolean isleaf ( ) {... public void setleftnode ( TreeNode node) {... public void setrightnode ( TreeNode node) {... // Instance fields private TreeNode l e f t ; private TreeNode right ; private Comparable item ; 20
5 Root Root.left D Root.right B F A C null G null null E null null null null null Σχήµα 6.5: υαδικό δέντρο Για να αναφερθούµε σε ένα δυαδικό δέντρο χρησιµοποιούµε ένα δείκτη ( pointer), ο οποίος δείχνει στην ϱίζα του. Ο δείκτης αυτός (root) ορίζεται στα πλαίσια της κλάσης που υλοποιεί το δέντρο αυτό Η χρήση δυναµικής δοµής δεδοµένων είναι τις περισσότερες ϕορές η πιο κατάλληλη για την αναπαράσταση ενός δυαδικού δέντρου και είναι αυτή που ϑα χρησιµοποιήσουµε για την υλοποίηση των διαφόρων πράξεων-λειτουργιών που ορίζονται πάνω στα δυαδικά δέντρα. Στο σχήµα 6.5 ϕαίνεται η γραφική αναπαράσταση του δέντρου του σχήµατος 6.4 µε τη ϐοήθεια δεικτών. Παρατηρήστε ότι στην περίπτωση που το αριστερό ή το δεξιό υπο-δέντρο ενός κόµβου είναι κενό τότε η αντίστοιχη τιµή του δείκτη left ή right έχει την τιµή null. Κατασκευή υαδικού έντρου Αναζήτησης Το δυαδικό δέντρο αναζήτησης αποτελεί µία ειδική κατηγορία δυαδικού δέντρου, το οποίο κατασκευάζεται µε ϐάση τον παρακάτω αλγόριθµο. Το πρώτο δεδοµένο χρησιµοποιείται για τη δηµιουργία της ϱίζας του δέντρου. Τα επόµενα δεδοµένα τοποθετούνται στο δέντρο, έτσι ώστε σε σχέση µε οποιονδήποτε κόµβο να ισχύει το εξής : όλες οι τιµές που ϐρίσκονται στο αριστερό υπο-δέντρο είναι µικρότερες από την τιµή του κόµβου και όλες οι τιµές που ϐρίσκονται στο δεξιό υπο-δέντρο είναι µεγαλύτερες. Ασκηση 6.1 Για να κατασκευάσετε ένα δυαδικό δέντρο αναζήτησης πρέπει να δηµιουργήσετε τις παρακάτω κλάσεις : TreeNode class η οποία περιγράφει ένα κόµβο ενός δυναµικού BSTree. DBSTree class που υλοποιεί το BSTree interface 21
6 BSTree.java public interface BSTree extends DataStructure { / <p> Adds a new item into the tree </p> / public void add( Comparable item ) throws StructureFullException ; / <p> Removes an item from the tree </p> / public void remove ( Comparable item ) throws StructureEmptyException ; Ασκηση 6.2 Στη συνέχεια να προσθέσετε στην DBSTree class τον παρακάτω κώδικα που εκτελεί τις 3 διελεύσεις δέντρου (inorder, preorder, postorder) που αναφέρονται στην ϑεωρία. DBSTree.java // public void inordertraversal ( ) { System. out. println ( "INORDER TRAVERSAL" ) ; inorder ( 0 ) ; System. out. println ( ) ; public void preordertraversal ( ) { System. out. println ( "PREORDER TRAVERSAL" ) ; preorder ( 0 ) ; System. out. println ( ) ; public void postordertraversal ( ) { System. out. println ( "POSTORDER TRAVERSAL" ) ; postorder ( 0 ) ; System. out. println ( ) ; // Recursive inorder private void inorder ( int position ) {... 22
7 // Recursive preorder private void preorder ( int position ) {... // Recursive postorder private void postorder ( int position ) {... Ασκηση 6.3 Να γράψετε την κλάση BSTreeManagement class που ελέγχει την ορθότητα των διελεύσεων που κατασκευάσατε στην προηγούµενη άσκηση : BSTreeManagement.java public class BSTreeManagement { public static void main( String args [ ] ) { DBSTree tree = new DBSTree ( ) ; int matrix [ ] = {42,12,19,50,17,10,69,54,43,8; for ( int i =0; i <matrix. length ; i ++) tree.add( matrix [ i ] ) ; System. out. println ( tree ) ; tree. inordertraversal ( ) ; tree. preordertraversal ( ) ; tree. postordertraversal ( ) ; Ασκηση 6.4 Με ϐάση το BSTree interface, που περιγράφει τη λειτουργία ενός δυαδικού δέντρου αναζήτησης, να κατασκευάσετε την ArrayBSTree class µε χρήση πίνακα. Στη συνέχεια να προσθέσετε στην ArrayBSTree class τις 3 διελεύσεις δέντρου (inorder, preorder, postorder) που αναφέρονται στην ϑεωρία. Τέλος να εκτελέσετε την BSTreeManagement class που ελέγχει την ορθότητα των διελεύσεων που κατασκευάσατε. 23
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
Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Δέντρα Δυαδικά Δέντρα Δυαδικά Δέντρα Αναζήτησης (inary Search Trees) http://aetos.it.teithe.gr/~demos/teaching_r.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής
1 Εισαγωγή στις οµές εδοµένων 2. 2 Στοίβα (Stack) 4. 3 Ουρά (Queue) 7. 4 Λίστα (List) 9. 5 Συνδεδεµένη Λίστα (Linked List) 14
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Δ Ο Μ Ε Σ Δ Ε Δ Ο Μ Ε Ν Ω Ν Α Κ Α Δ Η Μ Α Ι Κ Ο Ε Τ Ο Σ 2 0 0 9-2 0 1 0 Σ η μ ε ι ώ σ ε ι ς Ε
ΔυαδικάΔΕΝΔΡΑΑναζήτησης
ΔυαδικάΔΕΝΔΡΑΑναζήτησης Ρίζα (κόμβος που δεν έχει γονέα) πρόγονοι απόγονοι γονέας παιδιά έντρο είναι µία συλλογή από στοιχεία, που ονοµάζονται κόµβοι και συνδέονται µεταξύ τους µε τη βοήθεια ακµών αδέλφια
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 (5.1-5.2 και 5.4-5.6) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Δέντρα Βασικοί ορισµοί Μαθηµατικές ιδιότητες Διάσχιση δέντρων Preorder, postorder,
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή
Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα
Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί
ΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 7 ο έντρο Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης έντρο Ορισµός Υλοποίηση µε Πίνακα Υλοποίηση µε είκτες υαδικό έντρο
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα
1 Εισαγωγή στις οµές εδοµένων 2. 2 Στοίβα (Stack) 4. 3 Ουρά (Queue) 7. 4 Λίστα (List) 9. 5 Συνδεδεµένη Λίστα (Linked List) 14
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Δ Ο Μ Ε Σ Δ Ε Δ Ο Μ Ε Ν Ω Ν Α Κ Α Δ Η Μ Α Ι Κ Ο Ε Τ Ο Σ 2 0 0 9-2 0 1 0 Σ η μ ε ι ώ σ ε ι ς Ε
1 Εισαγωγή στις οµές εδοµένων 2. 2 Στοίβα (Stack) 4. 3 Ουρά (Queue) 7. 4 Λίστα (List) 9. 5 Συνδεδεµένη Λίστα (Linked List) 14
ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ Δ Ο Μ Ε Σ Δ Ε Δ Ο Μ Ε Ν Ω Ν Α Κ Α Δ Η Μ Α Ι Κ Ο Ε Τ Ο Σ 2 0 0 9-2 0 1 0 Σ η μ ε ι ώ σ ε ι ς Ε
Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :
Δένδρα Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών : Ανάλυση αλγορίθμων (π.χ. δένδρα αναδρομής) Δομές δεδομένων (π.χ. δένδρα αναζήτησης) ακμή Κατηγορίες (αύξουσα
Διδάσκων: Κωνσταντίνος Κώστα
Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος
Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 1 2 3 4 5 πλήθος κορυφών πλήθος ακμών Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από
Συγκρίσιμα Αντικείμενα (comparable)
Συγκρίσιμα Αντικείμενα (comparable) public class Student implements Comparable{ public String lastname; public String firstname; public int am; public int compareto(object s) throws ClassCastException{
Περιεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5
Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών
Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων
Διάλεξη 11: Δέντρα Ι Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Ορισμοί και πράξεις Αναπαράσταση δενδρικών δομών
ΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research
ΑΛΓΟΡΙΘΜΟΙ ΜΕ C ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής CMOR Lab Computational Methodologies and Operations Research Δέντρα (5) Τ ένα δέντρο i ένας κόμβος στο επίπεδο k j ένας κόμβος στο επίπεδο k+1 } :
Δομές Δεδομένων & Αλγόριθμοι
- Δυαδικά Δένδρα (binary trees) - Δυαδικά Δένδρα Αναζήτησης (binary search trees) 1 Δυαδικά Δένδρα Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Εφαρμογές 2 Ορισμοί (αναδρομικός ορισμός) Ένα δένδρο t είναι ένα πεπερασμένο
Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 11: Δέντρα Ι - Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Εισαγωγή σε δενδρικές δομές δεδομένων, -
έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο
έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο έντρα έντρο: πρότυπο ιεραρχικής δομής. Αναπαράσταση
ιαφάνειες παρουσίασης #10 (β)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 21: Εισαγωγή σε Δενδρικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Εισαγωγή σε δενδρικές δομές δεδομένων, -Ορισμοί και πράξεις - Αναπαράσταση δενδρικών δομών δεδομένων
Κεφάλαιο 10 Ψηφιακά Λεξικά
Κεφάλαιο 10 Ψηφιακά Λεξικά Περιεχόμενα 10.1 Εισαγωγή... 213 10.2 Ψηφιακά Δένδρα... 214 10.3 Υλοποίηση σε Java... 222 10.4 Συμπιεσμένα και τριαδικά ψηφιακά δένδρα... 223 Ασκήσεις... 225 Βιβλιογραφία...
ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών
έντρα ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο έντρα έντρο: πρότυπο ιεραρχικής δομής.
Δομές Δεδομένων. Δημήτρης Μιχαήλ. Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Υλοποίηση Δυαδικού Σωρού σε γλώσσα Java Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Σωρός Μεγίστου ως ΑΤΔ Ένας σωρός μεγίστου (max heap) είναι ένας ΑΤΔ που
Δοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης
Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2
Προγραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 20: Δυαδικό Δέντρο Αναζήτησης Δυαδικό δέντρο Κάθε κόμβος «γονέας» περιέχει δύο δείκτες που δείχνουν σε δύο κόμβους «παιδιά» του ιδίου τύπου. Αν οι δείκτες προς αυτούς
Βασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας
ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας
Διάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου
ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων
ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δοµών δεδοµένων 8.4 Μια σύντοµη µελέτη περίπτωσης 8.5 Προσαρµοσµένοι τύποι δεδοµένων 1 Βασικές δοµές
Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, ορισμοί, πράξεις και αναπαράσταση στη μνήμη ΔυαδικάΔένδρακαιΔυαδικάΔένδραΑναζήτησης ΕΠΛ 231 Δομές
Κύρια σηµεία για µελέτη. έντρα. Ορολογία δέντρων. Τι είναι δέντρο
Κύρια σηµεία για µελέτη έντρα Stock Fraud Make Money Fast! Ponzi Scheme ank Robbery Ο ΑΤ του δέντρου (..1) Preorder και postorder διασχίσεις (..) Ο ΑΤ του δυαδικού δέντρου(..) Inorder διάσχιση (..) Ηδιάσχισητουuler
Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες
Βασικές Έννοιες Δοµών Δεδοµένων
Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες
οµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ 1 ένδρα εσωτερικός κόµβος u το δένδρο έχει ύψος 4 u έχει ύψος 3 w έχει βάθος 2 κόµβος ένδρο: γράφηµα χωρίς κύκλους o Ρίζα (root) o Κόµβος (node) o Ακµή (edge) o Γονέας (parent) Παιδί (child)
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Υλικό από τις σηµειώσεις Ν. Παπασπύρου, 2006 Δέντρα δυαδικής αναζήτησης Δενδρικές δοµές δεδοµένων στις οποίες Όλα τα στοιχεία στο αριστερό υποδέντρο της ρίζας είναι
Δομές Δεδομένων (Data Structures)
Δομές Δεδομένων (Data Structures) Δένδρα (Trees) Βασικές Έννοιες. Δυαδικά Δένδρα. Δυαδικά Δένδρα Αναζήτησης. AVL Δένδρα. Δένδρα: Βασικές Έννοιες Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Δένδρο: μοντέλο ιεραρχικής
Γράφηµα (Graph) Εργαστήριο 10. Εισαγωγή
Εργαστήριο 10 Γράφηµα (Graph) Εισαγωγή Στην πληροφορική γράφηµα ονοµάζεται µια δοµή δεδοµένων, που αποτελείται από ένα σύνολο κορυφών ( vertices) (ή κόµβων ( nodes» και ένα σύνολο ακµών ( edges). Ενας
Ισοζυγισµένο έντρο (AVL Tree)
Εργαστήριο 7 Ισοζυγισµένο έντρο (AVL Tree) Εισαγωγή Εκτός από τα δυαδικά δέντρα αναζήτησης (inry serh trees) που εξετάσαµε σε προηγούµενο εργαστήριο, υπάρχουν αρκετά είδη δέντρων αναζήτησης µε ξεχωριστό
Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα
Στοιχεία Θεωρίας Γραφηµάτων (4) - έντρα Ορέστης Τελέλης tllis@unipi.r Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς έντρα 1 / 27 έντρα έντρο είναι απλό συνδεδεµένο µη
Δομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 16 Δένδρα (Trees) 1 / 42 Δένδρα (Trees) Ένα δένδρο είναι ένα συνδεδεμένο γράφημα χωρίς κύκλους Για κάθε
Οντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές
Διάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:
AVL-trees C++ implementation
Τ Μ Η Μ Α Μ Η Χ Α Ν Ι Κ Ω Ν Η / Υ Κ Α Ι Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ AVL-trees C++ implementation Δομές Δεδομένων Μάριος Κενδέα 31 Μαρτίου 2015 kendea@ceid.upatras.gr Εισαγωγή (1/3) Δυαδικά Δένδρα Αναζήτησης:
Μάθημα 22: Δυαδικά δέντρα (Binary Trees)
Trees Page 1 Μάθημα 22: Δυαδικά δέντρα (Binary Trees) Ένα δένδρο είναι δυαδικό αν όλοι οι κόμβοι του έχουν βαθμό (degree)
υαδικά έντρα Αναζήτησης
ηµήτρης Φωτάκης Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων Πανεπιστήµιο Αιγαίου υαδικά έντρα µε ρίζα. Κάθε εσωτερικός κόµβος περιέχει στοιχείο (αριθµό) και έχει δύο παιδιά. NULL-φύλλα
Δομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.
Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ
ένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος
Μονοπάτια και Κυκλώµατα Euler. Στοιχεία Θεωρίας Γραφηµάτων (3,4) Παραδείγµατα. Κριτήρια Υπαρξης.
Μονοπάτια και Κυκλώµατα Eulr Σε γράφηµα G(V, E): Στοιχεία Θεωρίας Γραφηµάτων (3,4) Ορέστης Τελέλης tllis@unipi.r Κύκλωµα Eulr: Απλό κύκλωµα που διασχίζει κάθε ακµή του G. Μονοπάτι Eulr: Απλό µονοπάτι που
Δομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό
Βασικές Έννοιες Θεωρίας Γραφημάτων
Βασικές Έννοιες Θεωρίας Γραφημάτων ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο Γραφήματα Μοντελοποίηση
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΠΡΩΤΗ ΠΡΟΟΔΟΣ ΣΤΗΝ «ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Y»
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΠΡΩΤΗ ΠΡΟΟΔΟΣ ΣΤΗΝ «ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Y» Σάββατο, 31 Οκτωβρίου 2015 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 150 ΛΕΠΤΑ ΘΕΜΑ 1.
ένδρα 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)
υαδικά δέντρα αναζήτησης
υαδικά δέντρα αναζήτησης οµές εδοµένων 3 ο εξάµηνο Ορισµός δυαδικού δέντρου αναζήτησης Σ ένα δυαδικό δέντρο αναζήτησης, για κάθε κόµβο Χ, Όλα τα κλειδιά(αντικείµενα) στο αριστερό υποδέντρο του Χ έχουν
Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 3: Δένδρα
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Διακριτά Μαθηματικά Ενότητα 3: Δένδρα Αν. Καθηγητής Κ. Στεργίου e-mail: kstergiou@uowm.gr Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Άδειες Χρήσης Το
Δομές Δεδομένων. Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 9: Τα ΔΔΑ ως Αναδρομικές Δομές Δεδομένων-Εφαρμογή Δυαδικών Δέντρων: Κωδικοί Huffman Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
ιαφάνειες παρουσίασης #11
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα
έντρα Πολλαπλής ιακλάδωσης και (a, b)- έντρα ηµήτρης Φωτάκης Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων έντρα Αναζήτησης Πολλαπλής ιακλάδωσης ( ΑΠ ) ΑΠ ή έντρα m-δρόµων: Σ Βάσεων εδοµένων.
2.1 Αντικειµενοστρεφής προγραµµατισµός
2.1 Αντικειµενοστρεφής προγραµµατισµός Στον αντικειµενοστρεφή προγραµµατισµό (object oriented programming, OOP) ένα πρόγραµµα υπολογιστή είναι ένα σύνολο αλληλεπιδρώντων αντικειµένων. Μπορεί να ειπωθεί
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά
Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά και Πληροφορικής Μαθηματικά Πανεπιστήμιο ΙΙ Ιωαννίνων
Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων κλειδί από ολικά διατεταγμένο σύνολο όπου το κάθε στοιχείο έχει ένα Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου με
Ουρές προτεραιότητας
Ουρές προτεραιότητας Πελάτες... στο ταµείο µιας τράπεζας Κάθε πελάτης µε ένα νούµερο/αριθµός προτεραιότητας! Όσοοαριθµός είναι µεγάλος, τόσο οι πελάτες είναι πιο ενδιαφέροντες(!) ένα µόνο ταµείο ανοικτό
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ. ΗΥ240 - Παναγιώτα Φατούρου 1
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος
Δομές Δεδομένων Ενότητα 5
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 5: Δυαδικά Δένδρα Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.
Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -
Κατ οίκον Εργασία 3 Σκελετοί Λύσεων
Κατ οίκον Εργασία 3 Σκελετοί Λύσεων Άσκηση 1 (α) Έστω Α(n) και Κ(n) ο αριθμός των ακμών και ο αριθμός των κόμβων ενός αυστηρά δυαδικού δένδρου με n φύλλα. Θέλουμε να αποδείξουμε για κάθε n 1 την πρόταση
Διασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1
Διασυνδεδεμένες Δομές Δυαδικά Δέντρα Προγραμματισμός II 1 lalis@inf.uth.gr Δέντρα Τα δέντρα είναι κλασικές αναδρομικές δομές Ένα δέντρο αποτελείται από υποδέντρα, καθένα από τα οποία μπορεί να θεωρηθεί
Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).
Κ08 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Διδάσκων: Μανόλης Κουμπαράκης Εαρινό Εξάμηνο 2016-2017. Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ
ΠΝΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΣ ΔΔΟΜΝΩΝ ΚΙ ΛΓΟΡΙΘΜΟΙ ΗΜΡΟΜΗΝΙ: 14/11/2018 ΔΙΓΝΩΣΤΙΚΟ ΠΝΩ Σ ΔΝΔΡΙΚΣ ΔΟΜΣ ΚΙ ΓΡΦΟΥΣ Διάρκεια: 45 λεπτά Ονοματεπώνυμο:. ρ. Ταυτότητας:. ΒΘΜΟΛΟΓΙ ΣΚΗΣΗ ΒΘΜΟΣ
ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις
ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις Δημήτρης Φωτάκης Διακριτά Μαθηματικά και Μαθηματική Λογική Πληροφορική Ελληνικό Ανοικτό Πανεπιστήμιο Δέντρα Δέντρο: πρότυπο ιεραρχικής δομής. Αναπαράσταση (ιεραρχικών)
Γέφυρες σε Δίκτυα. Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος. Γέφυρα του (με αφετηρία τον ) :
Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος και Γέφυρα του (με αφετηρία τον ) : Ακμή που περιέχεται σε κάθε μονοπάτι από το στο s a b c d e f g h i j k l Μας δίνεται ένα δίκτυο (κατευθυνόμενο
Αλγόριθµοι και Πολυπλοκότητα
Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 9 Απριλίου 2009 1 / 0 Παραδείγµατα γράφων
Συλλογές, Στοίβες και Ουρές
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει
ΗΥ360 Αρχεία και Βάσεις εδοµένων
ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης Tutorial B-Trees, B+Trees Μπαριτάκης Παύλος 2018-2019 Ιδιότητες B-trees Χρήση για μείωση των προσπελάσεων στον δίσκο Επέκταση των Binary Search Trees
ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΛΑΜΑΤΑΣ ΠΑΡΑΡΤΗΜΑ ΣΠΑΡΤΗΣ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ
ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΑΛΑΜΑΤΑΣ ΠΑΡΑΡΤΗΜΑ ΣΠΑΡΤΗΣ ΤΜΗΜΑ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «Τα δυαδικά δένδρα αναζήτησης και οι εφαρμογές τους» ΔΕΛΗ ΜΑΡΙΑ 2005011
8.6 Κλάσεις και αντικείμενα 8.7 Δείκτες σε γλώσσα μηχανής
ΚΕΦΑΛΑΙΟ 8: Αφαιρετικές έννοιες δεδομένων 8.1 Βασικές έννοιες δομών δεδομένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δομών δεδομένων 8.4 Μια σύντομη μελέτη περίπτωσης 8.4 Προσαρμοσμένοι τύποι δεδομένων 8.6
Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort
Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η διαδικασία PercolateDown, Δημιουργία Σωρού O Αλγόριθμος Ταξινόμησης HeapSort Υλοποίηση, Παραδείγματα
ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής
Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Υλοποίηση Στοίβας και Ουράς µε Συνδεδεµένες Λίστες http://aetos.it.teithe.gr/~demos/teaching_gr.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ
Το ισχυρό πλεονέκτηµα των απλών µη ταξινοµηµένων πινάκων που είναι η γρήγορη εισαγωγή, αναιρείται αν απαγορεύονται τα διπλότυπα.
Πίνακες Η πιο βασική δοµή αποθήκευσης δεδοµένων Υποστηρίζεται από όλες τις γλώσσες προγραµµατισµού Συνεχόµενες θέσεις στην κύρια µνήµη Προσπέλαση µέσω δείκτη Στατική δοµή το µέγεθος ορίζεται εξαρχής και
Διάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 13: Δέντρα ΙΙΙ - Ισοζυγισμένα Δέντρα, AVL Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ισοζυγισμένα Δέντρα - Υλοποίηση AVL-δέντρων
Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή
Απλές Δοµές Δεδοµένων Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος
Διασυνδεδεμένες Δομές. Λίστες. Προγραμματισμός II 1
Διασυνδεδεμένες Δομές Λίστες Προγραμματισμός II 1 lalis@inf.uth.gr Διασυνδεδεμένες δομές Η μνήμη ενός πίνακα δεσμεύεται συνεχόμενα η πρόσβαση στο i-οστό στοιχείο είναι άμεση καθώς η διεύθυνση του είναι
Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων
Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά ΕΠΛ231 Δομές Δεδομένων
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 2 Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα
Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες
Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Απλές Λίστες CS100, 2015-2016 1 / 10 Δομές δεδομένων Ορισμός:
Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to
Κεφάλαιο 2 Δοµές Δεδοµένων Ι Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε
Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )
Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική
Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες
public class ArrayStack implements Stack {
public class ArrayStack implements Stack { private static final int DEF_STACK_SIZE=2; //Array of objects private Object[] S; private int index ; // index, top, last, position // Returns the last item of
Βασικές Έννοιες Θεωρίας Γραφημάτων
Βασικές Έννοιες Θεωρίας Γραφημάτων Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Γραφήματα Μοντελοποίηση πολλών σημαντικών προβλημάτων
Διάλεξη 14: Δέντρα IV B Δένδρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 14: Δέντρα IV B Δένδρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2 3 Δένδρα, Εισαγωγή και άλλες πράξεις Άλλα Δέντρα: Β δένδρα, Β+ δέντρα, R δέντρα Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ231
Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).
Βασικές Δοµές Δεδοµένων Σύντοµη επανάληψη (ΕΠΛ 035). Περίληψη Γραµµικές Δοµές Δεδοµένων Πίνακες Λίστες Στοίβες Ουρές Γράφοι Δέντρα Γραµµικές Δοµές Πίνακας (array) A[0] A[1] A[2] A[ ] A[n-1] Προκαθορισµένη
ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και
διεύθυνση πρώτου στοιχείου διεύθυνση i-οστού στοιχείου T t[n]; &t[0] είναι t &t[i] είναι t + i*sizeof(t)
Προγραµµατισµός Ι (ΗΥ120) ιάλεξη 18: ιασυνδεµένες οµές - Λίστες ιασυνδεδεµένες δοµές δεδοµένων Η µνήµη ενός πίνακα δεσµεύεται συνεχόµενα. Η πρόσβαση στο i-οστό στοιχείο είναι άµεσηκαθώς η διεύθυνση του
Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.
Το πρόγραμμα HelloWorld.java Σχόλια στη Java HelloWorld Παύλος Εφραιμίδης pefraimi ee.duth.gr Java Το πρόγραμμα HelloWorld 1 Java Το πρόγραμμα HelloWorld 2 Σχόλια στη Java ΗγλώσσαJava υποστηρίζει
Ουρά Προτεραιότητας (priority queue)
Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει δύο βασικές λειτουργίες : Εισαγωγή στοιχείου με δεδομένο κλειδί. Επιστροφή ενός στοιχείου με μέγιστο (ή ελάχιστο) κλειδί και διαγραφή
2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ
2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,
Διάλεξη 15: Αναδρομή (Recursion) Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 15: Αναδρομή (Recursion) Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Η έννοια της αναδρομής Μη αναδρομικός / Αναδρομικός Ορισμός Συναρτήσεων Παραδείγματα Ανάδρομης Αφαίρεση της Αναδρομής