Το ισχυρό πλεονέκτηµα των απλών µη ταξινοµηµένων πινάκων που είναι η γρήγορη εισαγωγή, αναιρείται αν απαγορεύονται τα διπλότυπα.
|
|
- Ιωάννα Αγγελόπουλος
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Πίνακες Η πιο βασική δοµή αποθήκευσης δεδοµένων Υποστηρίζεται από όλες τις γλώσσες προγραµµατισµού Συνεχόµενες θέσεις στην κύρια µνήµη Προσπέλαση µέσω δείκτη Στατική δοµή το µέγεθος ορίζεται εξαρχής και δεν αλλάζει. Λειτουργίες επί Πινάκων Μη ταξινοµηµένοι Γραµµική αναζήτηση Ο(n) Εισαγωγή Αν επιτρέπονται διπλότυπα, O(1). //δεν ψάχνει ιαγραφή Ο(1) ιατήρηση σειράς Μετατόπιση, O(n) Ταξινοµηµένοι υαδική αναζήτηση O(lgn) Εισαγωγή O(n) Εύρεση σωστής θέσης Μετατόπιση στοιχείων ιαγραφή O(n) Υποχρεωτικά µετατόπιση Το ισχυρό πλεονέκτηµα των απλών µη ταξινοµηµένων πινάκων που είναι η γρήγορη εισαγωγή, αναιρείται αν απαγορεύονται τα διπλότυπα. Σε αυτή την περίπτωση, πριν την εισαγωγή επιβάλλεται αναζήτηση, άρα σε αυτή την περίπτωση η χρήση ταξινοµηµένων πινάκων είναι µονόδροµος. Συγχώνευση ταξινοµηµένων πινάκων µε merge sort. Μειονεκτήµατα Πινάκων Για να αλλάξει το µέγεθός τους απαιτείται να ξαναφτιαχτούν. Όσο είναι άδειοι, έχουµε σπατάλη. Όταν γεµίσουν, πρέπει να δεσµευτεί άλλος χώρος, να γίνει αντιγραφή και να αποδεσµευτεί ο αρχικός χώρος. Όχι καλές επιδόσεις για την αναζήτηση. ιεπαφή ΑΤ Πίνακας public interface ArrayInterface { public int isin (Object element); public void add (Object element) throws Exception ; public void remove (Object element); Το interface είναι ένα καλούπι που το υπακούουν υποχρεωτικά οι κλάσεις που το υλοποιούν. Χρησιµοποιώ τον τύπο δεδοµένων Object γιατί έτσι µπορώ να φτιάξω πίνακες που να περιέχουν οποιοδήποτε αντικείµενο στις θέσεις τους. Αυτό σηµαίνει ότι µπορώ να φτιάξω πίνακες String, κλπ, αλλά ΕΝ µπορώ να φτιάξω πίνακες ακεραίων int µπορώ Integer. Εκτός από το όνοµα της λειτουργίας του ΑΤ που υλοποιεί µια µέθοδος στο interface, καθορίζονται οι είσοδοι, οι έξοδοι της µεθόδου (όνοµα, τύπος και συνοπτική περιγραφή µε javadoc) και οι εξαιρέσεις που µπορεί να εγερθούν. [1]
2 Στοίβες Πώς Λειτουργεί µια Στοίβα Βγαίνει πρώτος, αυτός που µπήκε τελευταίος. LIFO = Last In First Out Παραδείγµατα χρήσης: Πιάτα στο ντουλάπι Οπισθοδρόµηση σε επισκέψεις ιστοσελίδων Αναίρεση / Επανάληψη επεξεργασίας Αποθηκεύει κάθε είδους αντικείµενο Κύριες λειτουργίες: void push(object): εισάγει στοιχείο στη στοίβα Object pop(): αφαιρεί το στοιχείο που µπήκε τελευταίο boolean isempty(): είναι η στοίβα άδεια; Εξαίρεση εγείρεται όταν προσπαθήσουµε να αφαιρέσουµε από άδεια στοίβα. Βοηθητικές λειτουργίες: Object top(): επιστρέφει το τελευταίο στοιχείο χωρίς να το αφαιρεί από τη στοίβα int size(): επιστρέφει το πλήθος των αποθηκευµένων στοιχείων Άρα τα περιεχόµενα µιας στοίβας δεν είναι απαραίτητο να είναι οµοιογενή, πχ όλα String. Μπορεί Integer, BankAccount, Array, κλπ. ιεπαφή Στοίβας public interface Stack extends DataStructure { public void push(object element) throws StructureFullException; public Object pop() throws StructureEmptyException; public boolean isempty() Παραλείπεται (και εννοείται) ο κατασκευαστής µιας νέας άδειας στοίβας. Χρησιµοποιώντας τις τρεις βασικές µεθόδους της διεπαφής, υλοποιούνται οι λειτουργίες: public Object top() που επιστρέφει το στοιχείο που βρίσκεται στην κορυφή της στοίβας, χωρίς να το αφαιρεί. (peek στη Java) public int size() που επιστρέφει το πλήθος των στοιχείων που βρίσκονται µέσα στη στοίβα. [Θα χρειαστεί να δηµιουργήσετε άλλη µια στοίβα.] Τα στοιχεία της στοίβας είναι τύπου Object bar PC=1 m=6 Κλήσεις Μεθόδων (συναρτήσεων) main() { int i = 5;foo(i); foo(int j) {int k; k = j+1; bar(k); //µέθοδος foo bar(int m) { //µέθοδος bar Όταν καλείται µια µέθοδος, εισάγεται στη στοίβα µια εγγραφή µε Τοπικές µεταβλητές και αποτέλεσµα Μετρητής προγράµµατος (PC): ποια είναι η εντολή που εκτελείται. foo PC=3 j=5 k=6 main PC=2 i=5 [2]
3 Όταν µια µέθοδος επιστρέφει, η εγγραφή της αφαιρείται από τη στοίβα και η εκτέλεση συνεχίζεται στη µέθοδο που είναι στην κορυφή της στοίβας. Υλοποίηση Στοίβας Ένας πίνακας S και µια µεταβλητή t που δείχνει στο στοιχείο του πίνακα που αποθηκεύει την κορυφή της στοίβας. Αρχικά t = 0. Ο πίνακας ξεκινά να γεµίζει από το στοιχείο µε δείκτη 0. Στην κατασκευή της στοίβας, δηλώνεται το µέγεθος Ν (default capacity) του πίνακα. Όλες οι µέθοδοι λειτουργούν σε σταθερό χρόνο Ο(1). Απαιτείται χώρος Ο(Ν), όπου Ν είναι το µέγεθος του πίνακα (και µέγιστο µέγεθος της στοίβας). Έτοιµο στη Java ως κλάση java.util.stack Η υλοποίηση αυτή µπορεί να εγείρει την εξαίρεση StackFullException, όταν υπερβούµε το µέγεθος του πίνακα N. Αυτό το σφάλµα δεν είναι ενδογενές του ΑΤ, αλλά εµφανίζεται στη συγκεκριµένη υλοποίηση µε πίνακες. Σε άλλες υλοποιήσεις (µε δυναµικά µεταβαλλόµενο µέγεθος αποθηκευτικού χώρου) που δεν παρουσιάζουν αυτή την εξαίρεση. Επιδόσεις & Περιορισµοί Επιδόσεις Έστω n το πλήθος των στοιχείων στη στοίβα Απαιτούµενος χώρος O(n) Κάθε λειτουργία τρέχει σε χρόνο O(1) Περιορισµοί Το µέγιστο µέγεθος της στοίβας πρέπει να δηλωθεί εκ των προτέρων (κατά την κατασκευή της) και δεν µπορεί να αλλάξει. Αν προσπαθήσουµε να εισάγουµε στοιχείο σε µια πλήρη στοίβα, θα προκληθεί εξαίρεση. Κανονικά, στην υλοποίηση αυτή που περιγράψαµε πρέπει να προστεθούν οι εξής µέθοδοι: boolean IsFull() int maxsize() [3]
4 Ουρές Πώς Λειτουργεί µια Ουρά Βγαίνει πρώτος, αυτός που µπήκε πρώτος. FIFO = First In First Out Παραδείγµατα χρήσης: Σειρά αναµονής για εξυπηρέτηση Αυτοκίνητα σε πάρκινγκ µε µια είσοδο/έξοδο Ουρά ως ΑΤ Εισαγωγές και διαγραφές ακολουθούν FIFO. Μέγεθος ουράς απεριόριστο Τύπος στοιχείων οποιοσδήποτε Βασικές λειτουργίες: enqueue (object): εισάγει στοιχείο στο πίσω µέρος της ουράς Object dequeue(): αφαιρεί και επιστρέφει το στοιχείο στην κορυφή της ουράς Λειτουργίες σε Ουρές Βοηθητικές λειτουργίες Object front(): επιστρέφει το στοιχείο στην κορυφή, χωρίς να το αφαιρεί int size(): πλήθος στοιχείων boolean isempty(): είναι άδεια η ουρά; Εξαιρέσεις Προσπάθεια εκτέλεσης της dequeue ή της front σε µια άδεια ουρά προκαλεί έγερση της EmptyQueueException ιεπαφή Ουράς public interface Queue extends DataStructure { public void enqueue ( Object element ) throws StructureFullException ; public Object dequeue ( ) throws StructureEmptyException ; public Object front ( ) throws StructureEmptyException ; public int size(); public boolean isempty(); Εφαρµογές για Ουρές Λίστες αναµονής Προσπέλαση σε διαµοιραζόµενους πόρους Παράδειγµα: δικτυακός εκτυπωτής που εξυπηρετεί πολλούς χρήστες. Ουρά µε Πίνακα Πίνακας µεγέθους N µε κυκλικό τρόπο Μεταβλητές διατηρούν κορυφή και οπίσθια f first δείχνει στο πρώτο στοιχείο r last δείχνει αµέσως µετά το τελευταίο στοιχείο Η θέση r του πίνακα παραµένει κενή. Αρχικά f = r ( άδεια ουρά ) [4]
5 Τρόπος Λειτουργίας Χρησιµοποιούµε τον τελεστή modulo (υπόλοιπο ακέραιας διαίρεσης) Algorithm size() return ( N - (f r ) ) mod N Algorithm isempty() return (f == r) //return (r-f) //size()==0 Εισαγωγή / ιαγραφή σε Ουρά. Algorithm enqueue(o) if size() = N 1 then //isfull() throw FullQueueException else Q[r] o //if (last==n) align() r (r + 1) mod N //Q[r++]=o Algorithm dequeue() if isempty() then throw EmptyQueueException else o Q[f] //o=q[f++] f (f + 1) mod N return o ΕΙΚΟΝΙΚΗ ΥΠΕΡΧΕΙΛΙΣΗ (ΕΥ) To isfull() ορίζεται σαν size() == Q.length Eικονική Υπερχείλιση έχω όταν βάζοντας στοιχεία φθάνω στο last=q.length αλλά δεν είναι γεµάτος ο πίνακας µου. Τότε πρέπει να γίνει ευθυγράµµιση alignment() (τα σπρώχνω στο 0) [5]
6 Λίστες Απλά & διπλά συνδεδεµένες Αντιµετωπίζει το πρόβληµα του στατικού µεγέθους των πινάκων. Υλοποιεί δυναµική εκχώρηση µνήµης: δεσµεύεται ακριβώς όση µνήµη χρησιµοποιείται. Απλά Συνδεδεµένη Λίστα (ΑΣΛ) Αλυσίδα κόµβων που ο καθένας παραπέµπει στον επόµενό του Ο κάθε κόµβος έχει δύο τµήµατα: data: περιέχει είτε τα δεδοµένα, είτε µια αναφορά προς τα δεδοµένα. next: περιέχει µια αναφορά προς τον επόµενο κόµβο της λίστας. Ο τελευταίος κόµβος το έχει null. Χρειάζεται να διατηρούµε µια αναφορά προς τον πρώτο κόµβο της λίστας. Χαρακτηριστικά Λιστών Καλύτερη χρησιµοποίηση (utilization) χώρου Εκχωρείται όσος χρησιµοποιείται, αλλά χρειάζεται χώρος για αποθήκευση συνδέσµου. Καθυστέρηση εξαιτίας δυναµικής δέσµευσης και αποδέσµευσης χώρου Στους πίνακες η δέσµευση γίνεται µια φορά στην αρχή και η αποδέσµευση στο τέλος. Στους αναπτυσσόµενους / συρρικνούµενους υπάρχει κόστος διαχείρισης, όταν το µέγεθος µεταβάλλεται σηµαντικά Πότε Χρησιµοποιούµε Λίστες; Όταν ενδιαφερόµαστε κυρίως να διαπερνούµε γραµµικά µια συλλογή στοιχείων Αντιπαράθεση: τυχαία προσπέλαση στο i-οστό στοιχείο καλύτερα πίνακας Όταν θέλουµε να αλλάζουµε συχνά τη σειρά των στοιχείων και η µετακίνησή τους κοστίζει. Όταν θέλουµε να διατηρούµε πολλαπλές ταξινοµήσεις των ίδιων στοιχείων Πχ ταξινόµηση υπαλλήλου µε ΑΜ, επώνυµο & όνοµα, τµήµα, κλπ Οι πληροφορίες ενός κόµβου δεν είναι πάντα κάτι τόσο απλό ή τόσο µικρό όσο ένας αριθµός. Πχ θα µπορούσε να είναι τα µισθολογικά στοιχεία υπαλλήλων. Μπορεί να θέλουµε να εκτελούµε αναζητήσεις µε βάση το ονοµατεπώνυµό τους, τον αριθµό µητρώου τους, την ηµεροµηνία γέννησής τους ή την θέση τους στη διοικητική ιεραρχία [6]
7 Τότε τοποθετούµε τα πρωτογενή στοιχεία σε συνεχόµενες θέσεις ενός πίνακα µε µια πχ τυχαία σειρά, και έπειτα φτιάχνουµε πίνακες ακεραίων που αποθηκεύουν δείκτες του πίνακα που περιέχει τα πρωτογενή στοιχεία µε τη σειρά του χαρακτηριστικού που επιθυµούµε. Μπορούµε βέβαια να έχουµε όσους τέτοιους πίνακες θέλουµε. Όταν αλλάζει ένα στοιχείο ενός υπαλλήλου χρειάζεται να ενηµερώσουµε τον πίνακα που διατηρεί την ταξινόµηση µε βάση αυτό το στοιχείο. Υλοποίηση Κόµβου ( public class Node { //class ListNode private Object data; // item private Node next; // nextnode public Node() { this(null, null); public Node(Object d, Node n) { data = d; next = n; //µέθοδοι get και set Eισαγωγή Στοιχείου στην Αρχή ΑΣΛ (insertfirst) 1. Κατασκευή κόµβου: γέµισµα data, next = head 2. Eνηµέρωση head 1: x = new Node( Baltimore, head) 2: head = x Eισαγωγή Στοιχείου στο τέλος ΑΣΛ (insertlast) ιατηρούµε άλλον ένα δείκτη στο τέλος της λίστας για να µην χρειάζεται να την διατρέχουµε. 1: x=new Node( Zurich, null) 2: tail.next=x 3: tail=x Aν διατηρείται µετρητής των κόµβων (counter) ενηµερώνεται counter++ [7]
8 ιαγραφή Στοιχείου στην Αρχή ΑΣΛ (removefirst) 1. Eνηµέρωση head 1: x = head 2: head = x.next ιαγραφή Στοιχείου στο τέλος ΑΣΛ (removelast) 1. Εστω x o προηγούµενος κόµβος του tail 2. x.next=null 3. Eνηµέρωση tail 1: x=head 2: while ( x.next!= tail ) x=x.next 3. x.next=null 4. tail= x Aν διατηρείται µετρητής των κόµβων (counter) ενηµερώνεται counter-- Αναζήτηση σε ΑΣΛ function efind (Node n, element x) { while ( n <> null ) //επανάληψη if (n. data == x) return true else n = n.next //επόµενος κόµβος return false function rfind(node n, element x) { if (n == null) return false else if (n.data = x) return true else rfind(n.next, x) //αναδροµή Συνένωση ΑΣΛ function concat (list x, list y) { //ΑΝ Ε if (x = null) x = y // κενή λίστα [8]
9 else { t = x.head while (t.next <> null) // διαπέραση t = t.next t.next = y.head // τελευταίος κόµβος της x δείχνει στο 1 ο της y. Επιδόσεις ΑΣΛ Εισαγωγή στην αρχή Ο(1) ιαγραφή στην αρχή Ο(1) Εισαγωγή στο τέλος Ο(1) Εάν διατηρούµε για τη λίστα τον αρχικό και τον τελικό κόµβο της ιαγραφή στο τέλος Ο(1) Φτάνει να µην χρειάζεται να διατηρούµε τον τελικό κόµβο της λίστας - αλλιώς απαιτείται διαπέραση Ο(n) Αναζήτηση στοιχείου Ο(n) Στοίβες & Ουρές µε ΑΣΛ Στοίβα: Στο head της λίστας είναι η κορυφή της στοίβας - όλες οι λειτουργίες σε Ο(1) Ουρά: Χρησιµοποιούµε την παραλλαγή της ΑΣΛ µε δείκτες στον πρώτο και στον τελευταίο κόµβο της. Στο head της λίστας γίνονται οι διαγραφές και στο tail οι ενθέσεις - όλες οι λειτουργίες σε Ο(1) Σηµείωση: Ανατρέξτε και στις σηµειώσεις της Θεωρίας σελ Αναστροφή ΑΣΛ static Node reverse (Node x) { Node t, y = x, r = null; while (y!= null) { t = y.next; y.next = r; r = y; [9]
10 y = t; return r; Απαιτείται να διατηρούµε συνδέσµους προς τρεις συνεχόµενους κόµβους: r δείχνει προς την ήδη ανεστραµµένη λίστα y το τµήµα της λίστας που έπεται t o δεύτερος κόµβος της µη ανεστραµµένης λίστας ιπλά Συνδεδεµένες Λίστες ( ΣΛ) Χρήση για διπλοουρές (dequeues): Ένθεση & διαγραφή και από τα δύο άκρα ιαπέραση και προς τις δύο κατευθύνσεις. Ειδικοί «άδειοι» κόµβοι για αρχή / τέλος Αν υλοποιήσουµε dequeues µε ΑΣΛ, τότε οι µισές λειτουργίες θα απαιτούν Ο(n), γι αυτό καταφεύγουµε στις ΣΛ που επιτυγχάνουν όλες τις λειτουργίες σε Ο(1) µε µεγαλύτερη πολυπλοκότητα. Για πρακτικούς λόγους συνήθως τα όρια των ΣΛ ορίζονται µε δύο ειδικούς κόµβους και χρησιµοποιείται και µια µεταβλητή size που µετράει τους νόµιµους κόµβους. Κυκλικές Λίστες Παραλλαγή διπλά διασυνδεδεµένης λίστας εν χρησιµοποιούµε ειδικούς κόµβους αρχής / τέλους. [10]
11 έντρα υαδικά έντρα Αναζήτησης Ιεραρχικός Μη γραµµικός τύπος δεδοµένων Γονέας Παιδιά Αδέλφια: κόµβοι µε κοινό πατέρα Πρόγονοι Απόγονοι Ο γραµµικός χρόνος που απαιτούν οι διασυνδεδεµένες λίστες µπορεί να βελτιωθεί σε Ο(lgn) µε χρήση δέντρων. Οι κόµβοι ενός δέντρου συνδέονται µε πολύ πλουσιότερες σχέσεις από το «προηγούµενος» - «επόµενος» των γραµµικών δοµών δεδοµένων. Υποστηρίζουν και γραµµικότητα... Ταξινοµηµένο δέντρο, όπου κάθε κόµβος έχει το πολύ δύο παιδιά, το αριστερό και το δεξί. Μπορεί να έχει και ένα µόνον παιδί. [11]
12 Αριθµητικές Παραστάσεις Εσωτερικοί κόµβοι είναι πράξεις. Εξωτερικοί κόµβοι (φύλλα) είναι τιµές. ((((3+1)*3)/((9-5)+2))-((3*(7-4))+6)) Το σχήµα απεικονίζει µια αριθµητική παράσταση µε δυαδικούς τελεστές (γνήσιο δυαδικό δέντρο). Αν επιτρέψουµε και µοναδιαίους τελεστές, τότε το δέντρο είναι δυαδικό, αλλά όχι απαραίτητα γνήσιο. Για τριαδικούς κλπ τελεστές χρειαζόµαστε αντίστοιχα τριαδικά, κοκ δέντρα. Μέθοδοι έντρων data(): επιστρέφει τα δεδοµένα ενός κόµβου //getnodeitem() root(): επιστρέφει τη ρίζα ενός δέντρου parent(): επιστρέφει τον πατέρα του κόµβου children(): επιστρέφει τα παιδιά του κόµβου Για δυαδικά δέντρα left(), right() //getleftnode(),getrightnode() isinternal(), isexternal(), isroot(): βοηθητικές // isleaf() size(), elements(): βοηθητικές [12]
13 Βάθος Κόµβου Η απόστασή του από τη ρίζα. Ισούται µε το πλήθος των προγόνων του κόµβου. Aλγόριθµος depth (tree, node) //επιστρέφει το βάθος του κόµβου node στο δέντρο tree if isroot(tree, node) return 0 //κόµβος είναι ρίζα του δέντρου else //το βάθος του πατέρα προσαυξηµένο κατά 1 return 1+depth(t, t.parent(n)) //ανεβαίνει ένα επίπεδο //private int depth(treenode node, Comparable item) Ύψος Κόµβου & έντρου 3 Ύψος ενός κόµβου είναι η απόστασή του από το µακρινότερο παιδί του. Αναδροµικός υπολογισµός: το µέγιστο από τα ύψη των παιδιών του προσαυξηµένο κατά 1. Ύψος ενός δέντρου είναι το ύψος της ρίζας του. [13]
14 ιαπέραση έντρου (traversal) Ένας συστηµατικός τρόπος επίσκεψης όλων των κόµβων του δέντρου Συνήθως ορίζεται αναδροµικά. 4 τρόποι διαπέρασης: Εσωδιάταξη Προδιάταξη Μεταδιάταξη ιάταξη κατά επίπεδα Προδιάταξη έντρου (Preorder traversal) Επισκεπτόµαστε τον πατέρα και µετά τα παιδιά του. Εφαρµόζουµε αυτόν τον κανόνα αναδροµικά στα υποδέντρα. Μεταδιάταξη έντρου Postorder traversal Επισκεπτόµαστε όλα τα παιδιά πριν επισκεφθούµε τον πατέρα τους. Εσωδιάταξη έντρου Inorder traversal Ορίζεται µόνον για δυαδικά δέντρα. Επισκεπτόµαστε πρώτα το αριστερό παιδί, µετά τον πατέρα και τέλος το δεξί παιδί. Inorder Traversal : υαδικά έντρα Αναζήτησης ( Α) (binary search tree) Κάθε κόµβος είναι µεγαλύτερος των κόµβων του αριστερού του κλάδου και µικρότερος των κόµβων του δεξιού του κλάδου. Το µικρότερο στοιχείο (το 3), βρίσκεται πάντα στον πιο αριστερό κόµβο: while (node.getleftnode()!=null) node = node.getleftnode(); Το µεγαλύτερο στοιχείο (το 14), βρίσκεται πάντα στον πιο δεξιό κόµβο: while (node.getrightnode()!=null) node = node.getrightnode(); Όταν διαπεραστούν µε εσωδιάταξη (πατέρας, αριστερό, δεξί), εµφανίζονται τα στοιχεία ταξινοµηµένα σε αύξουσα σειρά. [14]
15 Εισαγωγή σε έντρα Αναζήτησης ιατρέχει το δέντρο από τη ρίζα προς τα κάτω (επιλέγοντας αριστερό ή δεξί παιδί) µέχρι να φτάσει σε κάποιο φύλλο και εκεί εισάγει. Άρα επίδοση Ο(h), όπου h το ύψος του δέντρου. Χειρότερη περίπτωση: h = O(n) µακρόστενο δέντρο //εισάγει νέο κόµβο µε πληροφορία x στο κόµβο node Aλγόριθµος insert(node,x) //εισάγει και διπλότυπα if node = null then node = new Node(x, null, null) //κατασκευή else //ψάξε παρακάτω (στα παιδιά) if x < node.data insert(node.left,x) else insert(node.right,x) ιαγραφή σε έντρα Αναζήτησης //διαγραφή κόµβου µε x στο δέντρο t Αλγόριθµος Node remove (node,x) if x = null return(node) //δεν βρέθηκε µην κάνεις τίποτα elseif x<node.data node.left = remove(node.left,x) //ψάξε elseif x>node.data node.right=remove(node.right,x) //ψάξε else //βρήκαµε τον κόµβο που θα διαγράψουµε if node.left = null node = node.right //µόνο δεξί παιδί elseif node.right=null node = node.left //µόνο αριστερό παιδί else //δύο παιδιά //βρες το µικρότερο κόµβο του δεξιού υποδέντρου node.data = findmin(node.right).data node.right = remove(node.right,node.data) //σβήσε το µικρό //Αυτός ο αλγόριθµος βάζει το 12 στην θέση του 10. Αφήνει άγγιχτο το αριστερό του υποδέντρο και βρίσκει το µικρότερο κόµβο του δεξιού του υποδέντρου που τον τοποθετεί σε θέση του προς διαγραφή κόµβου. Έπειτα πρέπει να αφαιρεθεί από το υποδέντρο ο κόµβος που ανεβάστηκε για να µην εµφανίζεται δύο φορές. [15]
16 (Κατ αναλογία, θα µπορούσαµε να αφήσουµε άγγιχτο το δεξί υποδέντρο και να βρούµε το µεγαλύτερο κόµβο του αριστερού...) //BAΘΟΣ ΜΟΝΟ για δυαδικά δένδρα αναζήτησης private int depth(treenode node, Comparable item) { if ( item.compareto( node.getnodeitem() )< 0 ) //move left return 1+depth ( node.getleftnode(),item ); else if (item.compareto(node.getnodeitem())> 0) //move right return 1+depth ( node.getrightnode(),item); else return 0; //if ( item.compareto( node.getnodeitem() )== 0 ) έντρα AVL Α όπου για κάθε κόµβο το ύψος του αριστερού και το δεξιού του παιδιού διαφέρουν το πολύ κατά 1. Παρότι δεν είναι πλήρη, έχουν ύψος 1,44lg(n + 2)-0,328 Όλες οι λειτουργίες σε Ο( lgn ) [16]
17 ιαπέραση κ ατά Επίπεδα Αλγόριθµος diaperasikataepipeda (node) //αν ξεκινήσουµε π.χ. από το κόµβο 3 διαπέραση του υποδένδρου 3 Q.enqueue(node) //τοποθέτησε στην ουρά Q while (!Q.isEmpty()) //ενόσω η ουρά δεν είναι άδεια { w = Q.dequeue() //κάνε ό,τι θέλεις µε το w Q.enqueue(child) //για κάθε ένα παιδί child του w Υπολογιζόµενες Ιδιότητες έντρων Ο συντελεστής ισορροπίας ενός κόµβου είναι η διαφορά του ύψους του δεξιού και του αριστερού του υποδέντρου. Κοντινότερος κοινός πρόγονος δύο κόµβων Η απόσταση δύο κόµβων είναι το πλήθος των ακµών αναµεταξύ τους. Η µέγιστη απόσταση ανάµεσα σε οποιουσδήποτε κόµβους καλείται διάµετρος του δέντρου. [17]
18 Μέθοδοι του ΑΤ Γράφηµα Για µη κατευθυνόµενα γραφήµατα vertices() : απαριθµητής κορυφών γραφήµατος edges() : απαριθµητής ακµών γραφήµατος incidentedges(v) : απαριθµητής ακµών που άπτονται της κορυφής v endvertices(e) : ζευγάρι κορυφών που συνδέει η ακµή e Επιστρέφει πίνακα δύο στοιχείων ευτερεύουσες Μέθοδοι Χρησιµοποιώντας τις προηγούµενες, υλοποιήστε: numvertices(), numedges() : πλήθος degree(v), opposite(v,e), adjacentvertices(v), areadjacent(v,w) function int numvertices() { Iterator x = vertices(); int c = 0; while (x.hasnext) c++; return c; Η opposite δίνει τον κόµβο που συνδέεται µέσω της ακµής e µε τον κόµβο v, δηλαδή τον γείτονά της. function Vertex opposite(v, e) { int[] a = endvertices(e); //πίνακας 2 στοιχείων return (t[0] == v)? t[1] : t[0]; function boolean areadjacent(v, w) { Iterator x = incidentedges(v); while (x.hasnext) if (opposite(v,x) == w) return true; return false; Για κατευθυνόµενα γραφήµατα: indegree(v) outdegree(v) inincidentedges(v) outincidentedges(v) inadjacentvertices(v) outadjacent-vertices(v) [18]
Δομές Δεδομένων & Αλγόριθμοι
Ουρές Ουρές Περίληψη Η ΟυράΑΔΤ Υλοποίηση με κυκλικό πίνακα Αυξανόμενη Ουρά βασισμένη σε πίνακα Interface ουράς στην C++ Η Ουρά ADT Η ΑΔΤ Ουρά αποθηκεύει αυθαίρετα αντικείμενα Οι εισαγωγές και διαγραφές
Διαβάστε περισσότεραΔιδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή
Διαβάστε περισσότεραΔιάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα
Διάλεξη 12: Δέντρα ΙΙ Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης (ΔΔΑ) Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου Εισαγωγή στοιχείου
Διαβάστε περισσότεραιαφάνειες παρουσίασης #11
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ http://www.corelab.ece.ntua.gr/courses/programming/ ιδάσκοντες: Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραΔομές Δεδομένων (Data Structures)
Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη
Διαβάστε περισσότεραΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί
Διαβάστε περισσότεραOι βασικές πράξεις (λειτουργίες) που ορίζονται για τον τύπο στοίβα αναφέρονται παρακάτω:
3 ΣTOIBEΣ KAI OYPEΣ 3.1 ΣΤΟΙΒΕΣ Στοίβα (stack) είναι µία λίστα στην οποία νέα στοιχεία µπορούν να προστεθούν και να αφαιρεθούν µόνο από τη µία άκρη της (κορυφή της στοίβας). Συχνά µία στοίβα αναφέρεται
Διαβάστε περισσότεραΒασικές Έννοιες Δοµών Δεδοµένων
Δοµές Δεδοµένων Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος Βασικές Έννοιες
Διαβάστε περισσότεραΑλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες
Διαβάστε περισσότεραΤύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )
Τύποι Δεδομένων και Απλές Δομές Δεδομένων Παύλος Εφραιμίδης V1.0 (2014-01-13) Απλές Δομές Δεδομένων Στην ενότητα αυτή θα γνωρίσουμε ορισμένες απλές Δομές Δεδομένων και θα τις χρησιμοποιήσουμε για την αποδοτική
Διαβάστε περισσότεραΔιάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή
Διαβάστε περισσότεραΒασικές δοµές δεδοµένων. Ορολογία λιστών. 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας
ΚΕΦΑΛΑΙΟ 8: Αφηρηµένοι τύποι δεδοµένων 8.1 οµές δεδοµένων (data structures) 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Υλοποίηση δοµών δεδοµένων 8.3 Μια σύντοµη υπόθεση εργασίας Αδόµητα δεδοµένα οδός Ζέας
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 6. Δυαδικά Δέντρα 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 18/11/2016 Εισαγωγή Τα
Διαβάστε περισσότεραΔυαδικάΔΕΝΔΡΑΑναζήτησης
ΔυαδικάΔΕΝΔΡΑΑναζήτησης Ρίζα (κόμβος που δεν έχει γονέα) πρόγονοι απόγονοι γονέας παιδιά έντρο είναι µία συλλογή από στοιχεία, που ονοµάζονται κόµβοι και συνδέονται µεταξύ τους µε τη βοήθεια ακµών αδέλφια
Διαβάστε περισσότεραΟι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται
Διαβάστε περισσότεραΣυνδεδεμένη Λίστα ΣΛ null VK 23
Απλά (και διπλά) συνδεδεµένες Συνδεδεμένη Λίστα ΣΛ Μια αλυσίδα κόµβων όπου κάθε κόµβος δείχνει στον επόµενό του 12 99 37 18 null O κάθε κόµβος έχει 2 τµήµατα: data: τα δεδοµένα (ή µια αναφορά προς αυτά)
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΑπλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή
Απλές Δοµές Δεδοµένων Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλήµατος του ευσταθούς ταιριάσµατος
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού
Διαβάστε περισσότεραΔιάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου
Διαβάστε περισσότεραυαδικό έντρο Αναζήτησης (BSTree)
Εργαστήριο 6 υαδικό έντρο Αναζήτησης (BSTree) Εισαγωγή Οι περισσότερες δοµές δεδοµένων, που εξετάσαµε µέχρι τώρα (λίστες, στοίβες, ουρές) ήταν γραµ- µικές (ή δοµές δεδοµένων µιας διάστασης). Στην παράγραφο
Διαβάστε περισσότεραΔομές Δεδομένων & Ανάλυση Αλγορίθμων. 3ο Εξάμηνο. Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα. http://aetos.it.teithe.gr/~demos/teaching_gr.
Δομές Δεδομένων & Ανάλυση Αλγορίθμων 3ο Εξάμηνο Ουρά (Queue) Υλοποίηση της με τη βοήθεια πίνακα http://aetos.it.teithe.gr/~demos/teaching_gr.html Δημοσθένης Σταμάτης Τμήμα Μηχανικών Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ
Διαβάστε περισσότεραΣυλλογές, Στοίβες και Ουρές
Συλλογές, Στοίβες και Ουρές Σε πολλές εφαρμογές μας αρκεί η αναπαράσταση ενός δυναμικού συνόλου με μια δομή δεδομένων η οποία δεν υποστηρίζει την αναζήτηση οποιουδήποτε στοιχείου. Συλλογή (bag) : Επιστρέφει
Διαβάστε περισσότεραΔιάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας (Priority
Διαβάστε περισσότεραΟντοκεντρικός Προγραμματισμός
Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές
Διαβάστε περισσότεραΠεριεχόµενα. 1 Εισαγωγή στις οµές εδοµένων 3. 2 Στοίβα (Stack) 5
Περιεχόµενα 1 Εισαγωγή στις οµές εδοµένων 3 2 Στοίβα (Stack) 5 i ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ ii Πληροφορίες Εργαστηρίου Σκοπός του εργαστηρίου Το εργαστήριο οµές εδοµένων αποσκοπεί στην εφαρµογή των τεχνολογιών
Διαβάστε περισσότεραΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής
Δοµές Δεδοµένων & Ανάλυση Αλγορίθµων 3ο Εξάµηνο Υλοποίηση Στοίβας και Ουράς µε Συνδεδεµένες Λίστες http://aetos.it.teithe.gr/~demos/teaching_gr.html Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής ATEI ΘΕΣΣΑΛΟΝΙΚΗΣ
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων
ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δοµών δεδοµένων 8.4 Μια σύντοµη µελέτη περίπτωσης 8.5 Προσαρµοσµένοι τύποι δεδοµένων 1 Βασικές δοµές
Διαβάστε περισσότεραΔοµές Δεδοµένων. 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων. Ε. Μαρκάκης
Δοµές Δεδοµένων 11η Διάλεξη Ταξινόµηση Quicksort και Ιδιότητες Δέντρων Ε. Μαρκάκης Περίληψη Quicksort Χαρακτηριστικά επιδόσεων Μη αναδροµική υλοποίηση Δέντρα Μαθηµατικές ιδιότητες Δοµές Δεδοµένων 11-2
Διαβάστε περισσότεραΔοµές Δεδοµένων. 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης
Δοµές Δεδοµένων 6η Διάλεξη Αναδροµικές Εξισώσεις και Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Χρήση αναδροµικών εξισώσεων στην ανάλυση αλγορίθµων Αφηρηµένοι τύποι δεδοµένων Συλλογές στοιχείων Στοίβα
Διαβάστε περισσότεραΓράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 1 2 3 4 5 πλήθος κορυφών πλήθος ακμών Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από
Διαβάστε περισσότεραΔοµές Δεδοµένων. 18η Διάλεξη Ισορροπηµένα δέντρα. Ε. Μαρκάκης
Δοµές Δεδοµένων 18η Διάλεξη Ισορροπηµένα δέντρα Ε. Μαρκάκης Περίληψη Επανάληψη των Τυχαιοποιηµένων ΔΔΑ, Στρεβλών ΔΔΑ, Δέντρων 2-3-4 Δέντρα κόκκινου-µαύρου Λίστες Παράλειψης Χαρακτηριστικά επιδόσεων - συµπεράσµατα
Διαβάστε περισσότεραΔιάλεξη 05: Αφηρημένοι Τύποι Δεδομένων
Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Αφηρημένοι Τύποι Δεδομένων (ΑΤΔ) Οι ΑΤΔ Στοίβα και Ουρά Υλοποίηση των ΑΤΔ Στοίβα και Ουρά ΕΠΛ231 Δομές Δεδομένων
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα
Διάλεξη Ε4: Επανάληψη Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Εισαγωγή σε δενδρικές δομές δεδομένων, Δυαδικά Δένδρα Αναζήτησης Ισοζυγισμένα Δένδρα & 2-3 Δένδρα Διδάσκων: Κωνσταντίνος
Διαβάστε περισσότεραΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 ( και ) Ε. Μαρκάκης Επίκουρος Καθηγητής
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Βασικές Ιδιότητες και Διάσχιση Κεφάλαιο 5 (5.1-5.2 και 5.4-5.6) Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Δέντρα Βασικοί ορισµοί Μαθηµατικές ιδιότητες Διάσχιση δέντρων Preorder, postorder,
Διαβάστε περισσότεραΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 2 Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα
Διαβάστε περισσότεραΔιάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:
Διαβάστε περισσότεραιαφάνειες παρουσίασης #10 (β)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) Νίκος Παπασπύρου (nickie@softlab.ntua.gr)
Διαβάστε περισσότεραΔιάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές
Διάλεξη 07: Λίστες Ι Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εισαγωγή, εύρεση, διαγραφή) Ευθύγραμμες Διπλά Συνδεδεμένες Λίστες
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη 2005. Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 3 ο Συνδεδεµένες Λίστες Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση ΟΑΤ λίστα Ακολουθιακή λίστα Συνδεδεµένη λίστα
Διαβάστε περισσότεραΔομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 8: Γραμμική Αναζήτηση και Δυαδική Αναζήτηση-Εισαγωγή στα Δέντρα και Δυαδικά Δέντρα-Δυαδικά Δέντρα Αναζήτησης & Υλοποίηση ΔΔΑ με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 19/10/2017 Ανακεφαλαίωση:
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 3. Στοίβες & Ουρές 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 4/11/2016 Ανακεφαλαίωση:
Διαβάστε περισσότερα6η Διάλεξη Διάσχιση Γράφων και Δέντρων
ΘΕΩΡΙΑ ΓΡΑΦΩΝ 6 η Διάλεξη Διάσχιση Γράφων και Δέντρων Αλγόριθμος αναζήτησης σε Βαθος Αλγόριθμος αναζήτησης κατά Πλάτος Αλγόριθμοι για Δένδρα Εύρεση ελαχίστων Γεννητορικών (Επικαλύπτοντα) Δένδρων Διάσχιση
Διαβάστε περισσότεραΑφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
- Δυαδικά Δένδρα (binary trees) - Δυαδικά Δένδρα Αναζήτησης (binary search trees) 1 Δυαδικά Δένδρα Ορισμοί Λειτουργίες Υλοποιήσεις ΑΤΔ Εφαρμογές 2 Ορισμοί (αναδρομικός ορισμός) Ένα δένδρο t είναι ένα πεπερασμένο
Διαβάστε περισσότεραοµές εδοµένων 3 ο Εξάµηνο ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ 1 ένδρα εσωτερικός κόµβος u το δένδρο έχει ύψος 4 u έχει ύψος 3 w έχει βάθος 2 κόµβος ένδρο: γράφηµα χωρίς κύκλους o Ρίζα (root) o Κόµβος (node) o Ακµή (edge) o Γονέας (parent) Παιδί (child)
Διαβάστε περισσότεραΔιάλεξη 26: Σωροί. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 26: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας -Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Διδάσκων: Παναγιώτης Ανδρέου ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι
Διαβάστε περισσότεραΔένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :
Δένδρα Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών : Ανάλυση αλγορίθμων (π.χ. δένδρα αναδρομής) Δομές δεδομένων (π.χ. δένδρα αναζήτησης) ακμή Κατηγορίες (αύξουσα
Διαβάστε περισσότεραΟι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες
Δομές δεδομένων Πίνακες Οι πίνακες είναι το πιο απλό «μέσο» αποθήκευσης ομοειδούς πληροφορίας. Χρησιμοποιούν ακριβώς όση μνήμη χρειάζεται για την αποθήκευση της πληροφορίας Επιτρέπουν την προσπέλαση άμεσα
Διαβάστε περισσότερα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 Δοµές Δεδοµένων Ι Στην ενότητα αυτή θα γνωρίσουµε ορισµένες Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε
Διαβάστε περισσότεραΣύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης
Σύνοψη Προηγούμενου Λίστες (Lists) Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Στοίβες (Stacks) : στην κορυφή της στοίβας ( ) από την κορυφή της στοίβας ( ) Ουρές
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Λίστες Λίστες - Απλά Συνδεδεμένες Λίστες - Διπλά Συνδεδεμένες Λίστες Είδη Γραμμικών Λιστών Σειριακή Λίστα Καταλαμβάνει συνεχόμενες θέσεις κύριας μνήμης Συνδεδεμένη Λίστα Οι κόμβοι βρίσκονται σε απομακρυσμένες
Διαβάστε περισσότεραΔυαδικά Δένδρα Αναζήτησης, Δένδρα AVL
Δυαδικά Δένδρα Αναζήτησης, Δένδρα AVL Υλικό από τις σηµειώσεις Ν. Παπασπύρου, 2006 Δέντρα δυαδικής αναζήτησης Δενδρικές δοµές δεδοµένων στις οποίες Όλα τα στοιχεία στο αριστερό υποδέντρο της ρίζας είναι
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ
Διαβάστε περισσότεραΠρογραµµατισµός Ι (ΗΥ120)
Προγραµµατισµός Ι (ΗΥ120) Διάλεξη 15: Διασυνδεµένες Δοµές - Λίστες Δοµές δεδοµένων! Ένα τυπικό πρόγραµµα επεξεργάζεται δεδοµένα Πώς θα τα διατάξουµε? 2 Τι λειτουργίες θέλουµε να εκτελέσουµε? Πώς θα υλοποιήσουµε
Διαβάστε περισσότερα4. Συνδεδεμένες Λίστες
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 4. Συνδεδεμένες Λίστες 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 10/11/2016 Εισαγωγή
Διαβάστε περισσότεραΣτοίβες με Δυναμική Δέσμευση Μνήμης
ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές
Διαβάστε περισσότεραΔιάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 06: Συνδεδεμένες Λίστες & Εφαρμογές Στοιβών και Ουρών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Υλοποίηση ΑΤΔ με Συνδεδεμένες Λίστες -
Διαβάστε περισσότεραΣύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας. Σύνοψη Προηγούμενου (2/2) Σημερινό Μάθημα. Πίνακες. Εισαγωγή, σε χρόνο O(1).
Σύνοψη Προηγούμενου (1/2) Στοίβες, Ουρές, Ουρές Προτεραιότητας Ορέστης Τελέλης telelis@unipi.gr Τμήμα Ψηφιακών Συστημάτων, Πανεπιστήμιο Πειραιώς Πίνακες Εισαγωγή, σε χρόνο O(1). Αναζήτηση, σε χρόνο O(n).
Διαβάστε περισσότερα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
Διαβάστε περισσότεραΔιάλεξη 16: Σωροί. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 16: Σωροί Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Ουρές Προτεραιότητας - Ο ΑΤΔ Σωρός, Υλοποίηση και πράξεις Ουρά Προτεραιότητας Η δομή
Διαβάστε περισσότεραένδρα (tail, head) Γονέας Παιδί (ancestor, descendant) Φύλλο Εσωτερικός Κόµβος (leaf, non-leaf) που αποτελεί το γονέα του v.
ΕΝΟΤΗΤΑ 4 ΕΝ ΡΑ ΗΥ240 - Παναγιώτα Φατούρου 1 ένδρα Κόµβοι (nodes) Ακµές (edges) Ουρά και κεφαλή ακµής (tail, head) Γονέας Παιδί Αδελφικός κόµβος (parent, child, sibling) Μονοπάτι (path) Πρόγονος απόγονος
Διαβάστε περισσότεραΣτοιχειώδεις Δομές Δεδομένων
Στοιχειώδεις Δομές Δεδομένων Τύποι δεδομένων στη Java Ακέραιοι (int, long) Αριθμοί κινητής υποδιαστολής (float, double) Χαρακτήρες (char) Δυαδικοί (boolean) Από τους παραπάνω μπορούμε να φτιάξουμε σύνθετους
Διαβάστε περισσότεραΔηµοσθένης Σταµάτης Τµήµα Πληροφορικής ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΔΕΝΤΡΑ (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 Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής
Διαβάστε περισσότεραΔοµές Δεδοµένων. 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης. Ε. Μαρκάκης
Δοµές Δεδοµένων 14η Διάλεξη Δέντρα Δυαδικής Αναζήτησης Ε. Μαρκάκης Περίληψη Δέντρα Δυαδικής Αναζήτησης Υλοποιήσεις εισαγωγής και αναζήτησης Χαρακτηριστικά επιδόσεων ΔΔΑ Εισαγωγή στη ρίζα ΔΔΑ Υλοποιήσεις
Διαβάστε περισσότερα8.6 Κλάσεις και αντικείμενα 8.7 Δείκτες σε γλώσσα μηχανής
ΚΕΦΑΛΑΙΟ 8: Αφαιρετικές έννοιες δεδομένων 8.1 Βασικές έννοιες δομών δεδομένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δομών δεδομένων 8.4 Μια σύντομη μελέτη περίπτωσης 8.4 Προσαρμοσμένοι τύποι δεδομένων 8.6
Διαβάστε περισσότεραΟυρά Προτεραιότητας (priority queue)
Ουρά Προτεραιότητας (priority queue) Δομή δεδομένων που υποστηρίζει δύο βασικές λειτουργίες : Εισαγωγή στοιχείου με δεδομένο κλειδί. Επιστροφή ενός στοιχείου με μέγιστο (ή ελάχιστο) κλειδί και διαγραφή
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 7 ο έντρο Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης έντρο Ορισµός Υλοποίηση µε Πίνακα Υλοποίηση µε είκτες υαδικό έντρο
Διαβάστε περισσότεραΔοµές Δεδοµένων. 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι. Ε. Μαρκάκης
Δοµές Δεδοµένων 9η Διάλεξη Ταξινόµηση - Στοιχειώδεις µέθοδοι Ε. Μαρκάκης Περίληψη Bubble Sort Selection Sort Insertion Sort Χαρακτηριστικά επιδόσεων Shellsort Ταξινόµηση συνδεδεµένων λιστών Δοµές Δεδοµένων
Διαβάστε περισσότεραΒασικές οµές εδοµένων
Βασικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αφηρηµένοι Τύποι εδοµένων Οι ΑΤ Στοίβα και Ουρά Υλοποίηση των ΑΤ Στοίβα και Ουρά µε ιαδοχική και υναµική Χορήγηση Μνήµης
Διαβάστε περισσότεραδιεύθυνση πρώτου στοιχείου διεύθυνση i-οστού στοιχείου T t[n]; &t[0] είναι t &t[i] είναι t + i*sizeof(t)
Προγραµµατισµός Ι (ΗΥ120) ιάλεξη 18: ιασυνδεµένες οµές - Λίστες ιασυνδεδεµένες δοµές δεδοµένων Η µνήµη ενός πίνακα δεσµεύεται συνεχόµενα. Η πρόσβαση στο i-οστό στοιχείο είναι άµεσηκαθώς η διεύθυνση του
Διαβάστε περισσότεραΔομές Δεδομένων. Δημήτρης Μιχαήλ. Δέντρα Αναζήτησης. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Δομές Δεδομένων Δέντρα Αναζήτησης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Το πρόβλημα Αναζήτηση Θέλουμε να διατηρήσουμε αντικείμενα με κλειδιά και να μπορούμε εκτός από
Διαβάστε περισσότεραΟι βασικές πράξεις που ορίζουν τον ΑΤ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες:
υαδικά έντρα Αναζήτησης (Binary Search Trees) Ορισµός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόµενα στο αριστερό υποδέντρο του t είναι
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας Στην άσκηση αυτή θα υλοποιήσετε μια κλάση Geometric η οποία διαχειρίζεται μια γεωμετρική ακολουθία ακεραίων
Διαβάστε περισσότεραΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα
Διαβάστε περισσότεραWeek. 6: Java Collections
Week 6: Java Collections Συλλογές δεδοµένων [collections] Εβδοµάδα 6: Συλλογές δεδοµένων στην Java Οι συλλογές [collections] (αναφέρονται και ως «υποδοχείς δεδοµένων» [containers]) είναι κλάσεις που χρησιµοποιούνται
Διαβάστε περισσότεραένδρα 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)
Διαβάστε περισσότεραΕπιµέλεια Θοδωρής Πιερράτος
εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,
Διαβάστε περισσότερα#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα
#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα ηµήτρης Ν. Σερπάνος Εργαστήριο Συστηµάτων Υπολογιστών Τµήµα Ηλεκτρολόγων Μηχ. & Τεχνολογίας Υπολογιστών Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα Αλγόριθµοι:
Διαβάστε περισσότεραΒασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).
Βασικές Δοµές Δεδοµένων Σύντοµη επανάληψη (ΕΠΛ 035). Περίληψη Γραµµικές Δοµές Δεδοµένων Πίνακες Λίστες Στοίβες Ουρές Γράφοι Δέντρα Γραµµικές Δοµές Πίνακας (array) A[0] A[1] A[2] A[ ] A[n-1] Προκαθορισµένη
Διαβάστε περισσότεραΔιασυνδεδεμένες Δομές. Λίστες. Προγραμματισμός II 1
Διασυνδεδεμένες Δομές Λίστες Προγραμματισμός II 1 lalis@inf.uth.gr Διασυνδεδεμένες δομές Η μνήμη ενός πίνακα δεσμεύεται συνεχόμενα η πρόσβαση στο i-οστό στοιχείο είναι άμεση καθώς η διεύθυνση του είναι
Διαβάστε περισσότεραΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Πτυχιακή Εξεταστική Ιούλιος 2014 Διδάσκων : Ευάγγελος Μαρκάκης 09.07.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες
Διαβάστε περισσότεραΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16. Ε. Μαρκάκης Επίκουρος Καθηγητής
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Εξωτερική Αναζήτηση και Β-δέντρα Κεφάλαιο 16 Ε. Μαρκάκης Επίκουρος Καθηγητής Περίληψη Ακολουθιακή πρόσβαση Β-δέντρα Υλοποίηση πίνακα συµβόλων µε Β-δέντρα Αναζήτηση Εισαγωγή Δοµές Δεδοµένων
Διαβάστε περισσότεραΚλάσεις στη Java. Στοίβα - Stack. Δήλωση της κλάσης. ΗκλάσηVector της Java. Ηκλάση Stack
Κλάσεις στην Java Κλάσεις στη Java Παύλος Εφραιμίδης Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 1 Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΔοµές Δεδοµένων. 7η Διάλεξη Αφηρηµένοι Τύποι Δεδοµένων. Ε. Μαρκάκης
Δοµές Δεδοµένων 7η Διάλεξη Αφηρηµένοι Τύποι Δεδοµένων Ε. Μαρκάκης Περίληψη Στοίβα ώθησης προς τα κάτω Παραδείγµατα πελατών για στοίβες Υλοποιήσεις στοίβας µε πίνακες και λίστες Γενικές υλοποιήσεις Ουρές
Διαβάστε περισσότεραΣτοίβες - Ουρές. Στοίβα (stack) Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής
Στοίβες - Ουρές Γιάννης Θεοδωρίδης, Νίκος Πελέκης, Άγγελος Πικράκης Τµήµα Πληροφορικής οµές εδοµένων 1 Στοίβα (stack) οµή τύπουlifo: Last In - First Out (τελευταία εισαγωγή πρώτη εξαγωγή) Περιορισµένος
Διαβάστε περισσότεραΚλάσεις στη Java. Παύλος Εφραιμίδης. Java Κλάσεις στη Java 1
Κλάσεις στη Java Παύλος Εφραιμίδης Java Κλάσεις στη Java 1 Κλάσεις στην Java Θα δούμε τη διαδικασία δημιουργίας μιας κλάσης Θα υλοποιήσουμε μια κλάση για τη Δομή Δεδομένων Stack Java Κλάσεις στη Java 2
Διαβάστε περισσότεραΚεφάλαιο 10 Ψηφιακά Λεξικά
Κεφάλαιο 10 Ψηφιακά Λεξικά Περιεχόμενα 10.1 Εισαγωγή... 213 10.2 Ψηφιακά Δένδρα... 214 10.3 Υλοποίηση σε Java... 222 10.4 Συμπιεσμένα και τριαδικά ψηφιακά δένδρα... 223 Ασκήσεις... 225 Βιβλιογραφία...
Διαβάστε περισσότεραΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου, 2006 9-1
Σωροί Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ουρές Προτεραιότητας Σωροί υλοποίηση και πράξεις Ο αλγόριθµος ταξινόµησης HeapSort Παραλλαγές Σωρών ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 9 οµές εδοµένων σε C Γιώργος Γιαγλής Περίληψη Κεφαλαίου 9 οµές εδοµένων υναµικές
Διαβάστε περισσότεραΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων
ΟΝΟΜΑΤΕΠΩΝΥΜΟ: ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ AM: Δοµές Δεδοµένων Εξεταστική Ιανουαρίου 2014 Διδάσκων : Ευάγγελος Μαρκάκης 20.01.2014 ΥΠΟΓΡΑΦΗ ΕΠΟΠΤΗ: Διάρκεια εξέτασης : 2 ώρες και
Διαβάστε περισσότεραΣτοίβες. ΟΑΤ της Στοίβας. Περιγραφή και Υλικό Ανάγνωσης. Αφηρηµένοι Τύποι εδοµένων (AΤ )
Περιγραφή και Υλικό Ανάγνωσης Στοίβες ΟΑφηρηµένος Τύπος εδοµένων της Στοίβας (tack Abstract Data Type (ADT)) (..) Εφαρµογές για Στοίβες (..) Υλοποίηση µε βάση πίνακες (..) Στοίβα βασισµένη σε πίνακα η
Διαβάστε περισσότεραΑνάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι
Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι Αραποστάθης Μάριος Καθηγητής Πληροφορικής Πειραματικού Λυκείου Βαρβακείου http://users.sch.gr/mariosarapostathis
Διαβάστε περισσότεραΔομές Δεδομένων και Αλγόριθμοι
Δομές Δεδομένων και Αλγόριθμοι Χρήστος Γκόγκος ΤΕΙ Ηπείρου Χειμερινό Εξάμηνο 2014-2015 Παρουσίαση 16 Δένδρα (Trees) 1 / 42 Δένδρα (Trees) Ένα δένδρο είναι ένα συνδεδεμένο γράφημα χωρίς κύκλους Για κάθε
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι. Στοίβες. Εργαστήριο Γνώσης & Ευφυούς Πληροφορικής 1
Στοίβες Πληροφορικής 1 Περίληψη Ο Αφηρημένος Τύπος Δεδομένων (ΑΔΤ) : στοίβα Εφαρμογές στοίβας Υλοποίηση βασισμένη σε πίνακα Αυξανόμενη Στοίβα βασισμένη σε πίνακα Infix to Postfix Πληροφορικής 2 Αφηρημένος
Διαβάστε περισσότεραΑΛΓΟΡΙΘΜΟΙ ΜΕ C. ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής. CMOR Lab. Computational Methodologies and Operations Research
ΑΛΓΟΡΙΘΜΟΙ ΜΕ C ΝΙΚΟΛΑΟΣ ΣΑΜΑΡΑΣ Αναπληρωτής Καθηγητής CMOR Lab Computational Methodologies and Operations Research Δέντρα (5) Τ ένα δέντρο i ένας κόμβος στο επίπεδο k j ένας κόμβος στο επίπεδο k+1 } :
Διαβάστε περισσότεραΔιασυνδεδεμένες Δομές. Δυαδικά Δέντρα. Προγραμματισμός II 1
Διασυνδεδεμένες Δομές Δυαδικά Δέντρα Προγραμματισμός II 1 lalis@inf.uth.gr Δέντρα Τα δέντρα είναι κλασικές αναδρομικές δομές Ένα δέντρο αποτελείται από υποδέντρα, καθένα από τα οποία μπορεί να θεωρηθεί
Διαβάστε περισσότεραΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ
ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ (ΠΑΤΡΑ) ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Γιάννης Κουτσονίκος Επίκουρος Καθηγητής Οργάνωση Δεδομένων Δομή Δεδομένων: τεχνική οργάνωσης των δεδομένων με σκοπό την
Διαβάστε περισσότεραΔομές Δεδομένων Ενότητα 4
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 4: Ουρές Απόστολος Παπαδόπουλος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό
Διαβάστε περισσότερα