Δομές Δεδομένων και Τεχνικές Προγραμματισμού Ενότητα 6: ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ)

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

Download "Δομές Δεδομένων και Τεχνικές Προγραμματισμού Ενότητα 6: ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ)"

Transcript

1 Δομές Δεδομένων και Τεχνικές Προγραμματισμού Ενότητα 6: ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) Ιωάννης Κοτρώνης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών

2 Σκοποί ενότητας Ορίσει τους ΑΤΔ Δένδρο και Δυαδικό Δένδρο Αναζήτησης Να δείξει σημαντικές ιδιότητες του δένδρου, όπως ελάχιστο ύψος, κόστος αναζήτησης. Να δείξει τυπικές υλοποιήσεις Να αναπτύξει την εφαρμογή Huffman Να δείξει τα AVL δένδρα για καλύτερη ισορρόπηση. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 2

3 Περιεχόμενα ενότητας ΑΤΔ Δένδρο, ορισμός και χρήση Ιδιότητες και σχέση αριθμού κόμβων με ύψος ΑΤΔ Δυαδικό Δένδρο Αναζήτησης Πράξεις, υλοποιήσεις και πολυπλοκότητα Αναδρομικοί και μη αναδρομικοί αλγόριθμοι Διαδρομές προ-, ενδο-, μετα. AVL δένδρα ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 3

4 ΑΤΔ Δένδρο

5 Δέντρα (Trees) - Ιεραρχική Δομή Εφαρμογές Δομή Οργάνωση Αρχείων Οργανογράμματα Ορισμός (αναδρομικός ορισμός): Ένα δέντρο είναι ένα πεπερασμένο σύνολο κόμβων το οποίο είτε είναι κενό είτε μη κενό σύνολο τέτοιο ώστε: 1. Yπάρχει ένας μοναδικός κόμβος, που καλείται ρίζα. 2. Οι υπόλοιποι κόμβοι χωρίζονται σε n>=0 ξένα μεταξύ τους υποσύνολα, Τ 1, Τ 2,...,T n, κάθε ένα από τα οποία είναι ένα δέντρο. Τα Τ 1, Τ 2,...,T n καλούνται υπόδεντρα (subtrees) της ρίζας. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 5

6 Ο αριθμός των υποδέντρων ενός κόμβου καλείται βαθμός του κόμβου αυτού. Ας θεωρήσουμε το δέντρο του παρακάτω Σχήματος. Το δέντρο αποτελείται από 10 κόμβους {A, B, C, D, E, F, G, H, I, J}. ρίζα Α επίπεδο 1 Β C D 2 E F G H I J 3 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 6

7 Νέοι Όροι βαθμός κόμβου βαθμός δέντρου τερματικοί κόμβοι (ή φύλλα) εσωτερικοί κόμβοι παιδί, πατέρας (ή γονέας) πρόγονος, απόγονος ύψος (ή βάθος) ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 7

8 Δυαδικό δέντρο Ενα δυαδικό δέντρο είναι ένα πεπερασμένο σύνολο κόμβων, το οποίο είτε είναι κενό ή : 1. Υπάρχει ένας ειδικός κόμβος που καλείται ρίζα, και 2. Οι υπόλοιποι κόμβοι χωρίζονται σε δύο ξένα μεταξύ τους υποσύνολα, Α και Δ, κάθε ένα από τα οποία είναι ένα δυαδικό δέντρο. Το Α είναι το αριστερό υπόδεντρο της ρίζας και το Δ είναι το δεξί υπόδεντρο της ρίζας. Κάθε δέντρο μπορεί να παρασταθεί σαν ένα δυαδικό δέντρο. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 8

9 Α Β Ε C F G D H J I ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 9

10 Πρόταση (i) Ο μέγιστος αριθμός κόμβων στο επίπεδο i ενός δέντρου βαθμού d είναι d i-1, i >=1 και (ii) Ο μέγιστος αριθμός κόμβων ενός δέντρου βαθμού d και ύψους h είναι (d h - 1)/(d - 1). Απόδειξη (i) Η απόδειξη θα γίνει με επαγωγή. Αν i = 1, τότε d i-1 = d 0 = 1 πράγμα που ισχύει. Έστω ότι ο μέγιστος αριθμός των κόμβων στο k επίπεδο είναι d k-1. Το μέγιστο πλήθος των κόμβων στο k + 1 επίπεδο είναι d d k-1 = d k. (ii) Ο μέγιστος αριθμός των κόμβων σε ένα δέντρο ύψους h είναι: h i 1 h i 1 d i 1 (μέγιστος αριθμός στο επίπεδο i) 1 d d 2... d h 1 d d h 1 1 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 10

11 Πόρισμα (i) Ο μέγιστος αριθμός κόμβων στο επίπεδο i ενός δυαδικού δέντρου είναι 2 i-1, i >= 1 και (ii) Ο μέγιστος αριθμός κόμβων ενός δυαδικού δέντρου ύψους h είναι 2 h - 1. Πρόταση Ενα δυαδικό δέντρο με n κόμβους έχει ύψος τουλάχιστον log ( n 1) 2 Απόδειξη Αν h είναι το ύψος ενός δυαδικού δέντρου, τότε από το παραπάνω πόρισμα έχουμε 2 h - 1>= n ή h >= log 2 (n + 1). Άρα το ελάχιστο ύψος του δυαδικού δέντρου είναι άνω φράγμα (ακέραιος) log 2 (n+1) log 2 ( n 1) ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 11

12 Πρόταση Για ένα μη κενό δυαδικό δέντρο Τ, αν n 0 είναι το πλήθος των τερματικών κόμβων και n 2 είναι το πλήθος των εσωτερικών κόμβων βαθμού 2, τότε n 0 = n Απόδειξη n = n 0 + n 1 + n 2 (1) Επίσης n = B + 1 όπου Β είναι το πλήθος των κλαδιών. Αλλά επίσης B = n 1 + 2n 2 άρα n = 1 + n 1 + 2n 2 (2) Από τις (1) και (2) έχουμε : n 0 = n ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 12

13 Για τον πλήρη ορισμό του ΑΤΔ δυαδικό δέντρο απομένει να ορισθούν οι βασικές πράξεις του που είναι: 1. Δημιουργία 2. Κενό 3. Αριστερό παιδί 4. Δεξί παιδί 5. Ανάκτηση Δεδομένων (περιεχόμενο) 6. Αλλαγή Δεδομένων Πατέρας (γονέας) 8. Διαγραφή υποδέντρων 9. Αντικατάσταση υποδέντρων 10. Συγχώνευση 11. Αναζήτηση ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 13

14 Α. Απεικόνιση (σχεδιασμός) δυαδικών δέντρων με πίνακα 1 Α 1 A 2 Β 3 C 2 B 4 D 5 E F 6 7 G 4 C 8 H 9 I Αριθμούμε τις δυνητικές θέσεις των κόμβων από 1 έως 2 h -1, όπου h το ύψος (βάθος) του δυαδικού δένδρου. 8 D ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 14

15 Συναρτήσεις πρόσβασης Πρόταση Αν ένα πλήρες δυαδικό δέντρο με n κόμβους (δηλ. βάθος = log ( n 1) 2 ) παριστάνεται ακολουθιακά όπως παραπάνω, τότε για οποιονδήποτε κόμβο με δείκτη i, 1<= i<= n έχουμε: (1) O pateras(i) είναι στη θέση αν i< >1. Όταν i = 1, τότε δεν υπάρχει πατέρας, γιατί το i είναι η i / ρίζα. 2 (2) Το apaidi(i) είναι στη θέση 2i αν 2i <= n. Αν 2i > n, τότε ο κόμβος δεν έχει αριστερό παιδί. (3) To dpaidi(i) είναι στη θέση 2i + 1, αν 2i + 1 <= n. Αν 2i + 1 > n, τότε ο κόμβος δεν έχει δεξί παιδί. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 15

16 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 16 Η απεικόνιση αυτή είναι ιδανική για ένα πλήρες δυαδικό δέντρο, ωστόσο αρκετός χώρος μνήμης παραμένει ανεκμετάλευτος στα μη πλήρη δυαδικά δέντρα. Α B C D E F G H I Α B - C D dentro dentro

17 Β. Συνδεδεμένη παράσταση δυαδικού δέντρου με πίνακες apaidi dedomena dpaidi.. index αριστερό παιδί index δεξί παιδί Ένα δυαδικό δέντρο τώρα μπορεί να παρασταθεί ως ένας πίνακας τέτοιων εγγραφών. Έχουμε λοιπόν τις παρακάτω δηλώσεις : ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 17

18 #define plithos... typedef... typos_stoixeiou; typedef int typossyndesis; /* όχι pointer αλλά index */ typedef struct { typos_stoixeiou dedomena; typossyndesis apaidi, dpaidi; } typos_komvou; typedef typos_komvou pinakas_komvou[plithos]; ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 18

19 Συνδεδεμένη παράσταση δυαδικού δέντρου με πίνακες : 1 A 2 B 3 C 4 D 5 E ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 19

20 Pinakas_komvou Tree1; Το πρώτο στοιχείο του Tree1 δεν χρησιμοποιείται. Η ρίζα είναι στο στοιχείο 1 (δες συναρτήσεις) dedomena apaidi dpaidi 1 Α Β C D E -1-1 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 20

21 Γ. Υλοποίηση δυαδικών δέντρων με δείκτες (pointers) typedef... typos_stoixeiou; typedef struct typos_komvou *typos_deikti; typedef struct typos_komvou { typos_stoixeiou dedomena; typos_deikti apaidi,dpaidi; }; typos_deikti riza; Στην συνέχεια όλες οι υλοποιήσεις θα είναι με δείκτες ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 21

22 Συνδεδεμένη παράσταση δυαδικού δέντρου με δείκτες : Α.. Β.. C... D.. E.. F. G.. H.... I ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 22

23 void dimiourgia_dentro(typos_deikti *riza){ /*Προ: Καμμία. Μετά: Εχει δημιουργηθεί ένα κενό δυαδικό οποίο δείχνει η riza.*/ δέντρο στο } *riza = NULL; ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 23

24 int keno_dentro(typos_deikti riza){ /* Προ: Εχει δημιουργηθεί το δέντρο στο οποίο δείχνει η riza Μετά: Το υποπρόγραμμα επιστρέφει την τιμή true ή false ανάλογα με το αν το δέντρο είναι κενό ή όχι.*/ } return (riza == NULL); ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 24

25 Διαδρομή δυαδικού δέντρου Μια από τις βασικές επεξεργασίες ενός δυαδικού δέντρου είναι η επίσκεψη κάθε κόμβου του μια μόνο φορά. Τρία Βήματα. 1. Επίσκεψη της ρίζας. 2. Διαδρομή του αριστερού υποδέντρου της. 3. Διαδρομή του δεξιού υποδέντρου της. Τα τρία αυτά βήματα μπορούν να εκτελεστούν με οποιαδήποτε διάταξη. Αν συμβολίσουμε τα παραπάνω βήματα με: Κ : Επίσκεψη ενός κόμβου. Α : Διαδρομή αριστερού υποδέντρου του. Δ : Διαδρομή δεξιού υποδέντρου του. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 25

26 Τότε υπάρχουν έξι διατάξεις για την επίσκεψη των κόμβων ενός δυαδικού δέντρου που είναι οι: ΚΑΔ ΑΚΔ ΑΔΚ ΚΔΑ ΔΚΑ ΔΑΚ ΚΑΔ : προδιατεταγμένη διαδρομή. ΑΚΔ : ενδοδιατεταγμένη διαδρομή. ΑΔΚ : μεταδιατεταγμένη διαδρομή. Οι άλλες 3 (ΔΑ) δεν έχουν ενδιαφέρον (συμμετρικές). ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 26

27 Οι τρεις διατάξεις επίσκεψης ενός δυαδικού δέντρου: Μ Ε T A Z P προδιατεταγμένη : ΜΕΑΖΤΡΣ ενδοδιατεταγμένη : ΑΕΖΜΡΣΤ μεταδιατεταγμένη : ΑΖΕΣΡΤΜ Σ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 27

28 Μεταδιατεταγμένη διαδρομή Α Δ Κ Μ Ε T Α Ζ P Σ Πρώτα επίσκεψη Αριστερού Υποδένδρου του Μ (ρίζας) ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 28

29 Ε Πρώτα επίσκεψη Αριστερού Υποδένδρου του Ε Α Α Ζ Πρώτα επίσκεψη Αριστερού Υποδένδρου του Α, είναι κενό. Επίσκεψη Δεξιού Υποδένδρου του Α, κενό Επίσκεψη Α Επίσκεψη Δεξιού Υποδένδρου Ε Αριστερό Ζ, κενό Δεξιό Ζ, κενό Επίσκεψη Ζ Επίσκεψη Ε ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 29

30 Τ Επίσκεψη Δεξιού Υποδένδρου του Μ (ρίζας) P Σ P Επίσκεψη Αριστερού Υ/Δ του Τ Επίσκεψη Αριστερού Υ/Δ του Ρ, κενό Επίσκεψη Δεξιού Υ/Δ του Ρ, Σ Επίσκεψη Αριστερού Υ/Δ του Σ, κενό Επίσκεψη Δεξιού Υ/Δ του Σ, κενό Επίσκεψη Σ Επίσκεψη Ρ Επίσκεψη Τ Επίσκεψη Μ Σ Σ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 30

31 Αναδρομικό Υποπρόγραμμα Μετα-διατεταταγμένης Διαδρομής void μεταdiataksi(typos_deikti riza){ /* Aναδρομικό υποπρόγραμμα. Διατρέχει με μεταδιατεταγμένη διαδρομή ένα δυαδικό δέντρο */ } if (!keno_dentro(riza)){ metadiataksi(riza->apaidi); //αριστερό Υ/Δ metadiataksi(riza->dpaidi); //δεξί Υ/Δ episkepsi(riza); /* Eπίσκεψη της ρίζας */ } ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 31

32 όπου η episkepsi τυπώνει το περιεχόμενο ενός κόμβου. Η εντολή metadiataksi (riza) καλεί αναδρομικά την metadiataksi προκειμένου να εκτελέσει την μεταδιατεταγμένη διαδρομή του παραπάνω δέντρου. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 32

33 Αναδρομικό Υποπρόγραμμα Ενδο-διατεταταγμένης Διαδρομής void endodiataksi(typos_deikti riza){ /* Aναδρομικό υποπρόγραμμα. Διατρέχει με ενδοδιατεταγμένη διαδρομή ένα δυαδικό δέντρο. */ if (!keno_dentro(riza)){ endodiataksi(riza->apaidi); //αριστερό Υ/Δ episkepsi(riza); // Eπίσκεψη της ρίζας endodiataksi(riza->dpaidi); /* δεξί Υ/Δ } } ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 33

34 όπου η episkepsi τυπώνει το περιεχόμενο ενός κόμβου. Η εντολή endodiataksi (riza) καλεί τη διαδικασία endodiataksi προκειμένου να εκτελέσει την ενδοδιατεταγμένη διαδρομή του παραπάνω δέντρου. Η ενέργεια αυτής της διαδικασίας εμφανίζεται αναλυτικά στον ακόλουθο πίνακα: ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 34

35 Aς υποθέσουμε ότι έχουμε το δυαδικό δέντρο: riza Μ.. Ε.. Τ... Α.. Ζ.. P. Σ.. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 35

36 Περιεχόμενο κόμβου Ενέργεια Αποτέλεσμα Μ Ε Α Κενό Κλήση της διαδικασίας με δείκτη στη ρίζα (Ε) του αριστερού υποδέντρου. Κλήση της διαδικασίας με δείκτη στη ρίζα (Α) του αριστερού υποδέντρου. Κλήση της διαδικασίας με δείκτη (NULL) στη ρίζα του αριστερού υποδέντρου. Κενό δέντρο, επιστροφή στον κόμβο-πατέρα. Α Εκτύπωση του περιεχομένου του κόμβου Α ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 36

37 Περιεχόμενο κόμβου Ενέργεια Αποτέλεσμα Α Κενό Α Κλήση της διαδικασίας με δείκτη NULL στη ρίζα του δεξιού υποδέντρου. Κενό δέντρο, επιστροφή στον κόμβο-πατέρα. Επιστροφή στον κόμβο πατέρα. Ε Εκτύπωση του περιεχομένου του Ε του κόμβου. Ε Κλήση της διαδικασίας με δείκτη στη ρίζα (Ζ) του δεξιού υποδέντρου. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 37

38 Περιεχόμενο κόμβου Ενέργεια Αποτέλεσμα Ζ Κενό Κλήση της διαδικασίας με δείκτη (NULL) στη ρίζα του αριστερού υποδέντρου. Κενό δέντρο, επιστροφή στον κόμβο-πατέρα. Ζ Εκτύπωση του περιεχομένου του Ζ κόμβου. Ζ Κλήση της διαδικασίας με δείκτη (NULL) στη ρίζα του δεξιού υποδέντρου. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 38

39 Περιεχόμενο κόμβου Ενέργεια Αποτέλεσμα Κενό Ζ Ε Μ Μ Κενό δέντρο, επιστροφή στον κόμβο πατέρα. Επιστροφή στον κόμβο-πατέρα. Επιστροφή στον κόμβο-πατέρα. Εκτύπωση του περιεχομένου του κόμβου. Κλήση της διαδικασίας με δείκτη στη ρίζα (Τ) του δεξιού υποδέντρου. Μ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 39

40 Περιεχόμενο κόμβου Ενέργεια Αποτέλεσμα Τ P Κενό Κλήση της διαδικασίας με δείκτη στη ρίζα (P) του αριστερού υποδέντρου. Κλήση της διαδικασίας με δείκτη (NULL) στη ρίζα του αριστερού υποδέντρου. Κενό δέντρο, επιστροφή στον κόμβο πατέρα. P Εκτύπωση του περιεχομένου του κόμβου P ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 40

41 Περιεχόμενο κόμβου Ενέργεια Αποτέλεσμα P Σ Κενό Κλήση της διαδικασίας με δείκτη στη ρίζα (Σ) του δεξιού υποδέντρου. Κλήση της διαδικασίας με δείκτη (NULLl) στη ρίζα του αριστερού υποδέντρου. Κενό δέντρο, επιστροφή στον κόμβο-πατέρα. Σ Εκτύπωση του περιεχομένου του κόμβου Σ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 41

42 Περιεχόμενο κόμβου Ενέργεια Αποτέλεσμα Σ Κενό Σ P Κλήση της διαδικασίας με δείκτη (NULL) του δεξιού υποδέντρου. Κενό δέντρο, επιστροφή στον κόμβο πατέρα. Επιστροφή στον κόμβο-πατέρα Επιστροφή στον κόμβο-πατέρα Τ Εκτύπωση του περιεχομένου του κόμβου. Τ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 42

43 Περιεχόμενο κόμβου Ενέργεια Αποτέλεσμα T Κενό Τ Μ Κλήση της διαδικασίας με δείκτη (NULL) του δεξιού υποδέντρου. Κενό δέντρο, επιστροφή στον κόμβο-πατέρα. Επιστροφή στον κόμβο-πατέρα Τέλος διαδικασίας ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 43

44 Eίναι φανερό ότι η προδιατεταγμένη και μεταδιατεταγμένη διαδρομή προκύπτουν αν απλά αλλάξουμε την σειρά των εντολών στη διαδικασία endodiataksi, όπως φαίνεται παρακάτω : void prodiataksi(typos_deikti riza){ /* προδιατεταγμένη διαδρομή */ } if (!keno_dentro(riza)){ episkepsi(riza); prodiataksi(riza->apaidi); prodiataksi(riza->dpaidi); } ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 44

45 void metadiataksi(typos_deikti riza){ /* μεταδιατεταγμένη διαδρομή */ } if (!keno_dentro(riza)){ metadiataksi(riza->apaidi); metadiataksi(riza->dpaidi); episkepsi(riza); } Πολυπλοκότητα Ο(n) Περνάμε από κάθε κόμβο είτε ΜΙΑ φορά (φύλλο) είτε ΔΥΟ φορές (εσωτερικός κόμβος). ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 45

46 Μη Αναδρομικά Υποπρογράμματα Διαδρομής riza A B C D E F G ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 46

47 Μη αναδρομικός αλγόριθμος για την ενδοδιατεταγμένη διαδρομή (με χρήση στοίβας) 1. trexon = riza; 2. Όσο η στοίβα δεν είναι κενή και trexon!= NULL να εκτελούνται: α. Να διατρέχονται οι αριστεροί κόμβοι του αριστερού υποδέντρου και να τοποθετούνται οι διευθύνσεις τους σε μια στοίβα. {έως ότου αριστερό υπόδεντρο κενό} β. Αν η στοίβα δεν είναι κενή τότε (i) Εξαγωγή διεύθυνσης από στοίβα (ii) Επεξεργασία του περιεχομένου του. (iii) Συνέχισε με δεξί παιδί, trexon= δεξι παιδί ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 47

48 void endodiataksi(typos_deikti riza){//eπαναληπτικό typos_stoivas stoiva; typos_deikti trexon = riza; dimiourgia(&stoiva); do {//Διατρέχονται οι κόμβοι των αριστερών κλαδιών while (trexon!=null){ othisi(&stoiva,trexon); trexon = trexon->apaidi; } /* Tο αριστερό υπόδεντρο είναι κενό */ if (!keni(stoiva)) { exagogi(&stoiva,&trexon); episkepsi(trexon); /*Eπίσκεψη ρίζας */ trexon = trexon->dpaidi; /*δεξιός κόμβος*/ } while ((!keni(stoiva)) (trexon!=null)); } ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 48

49 Ανομοιογενή δυαδικά δέντρα (παραστάσεων-expressions) Συχνά τα δεδομένα που περιέχονται σε διαφορετικούς κόμβους δεν είναι όλα του ίδιου τύπου. + - D Παράσταση της A * (A-(B*C))+D με δυαδικό δέντρο Β C ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 49

50 Για τη μετατροπή μιας ενδοδιατεταγμένης παράστασης (expression) κατασκευάζουμε δυαδικό δέντρο, το οποίο ονομάζεται δέντρο παράστασης. Σε κάθε βήμα να αναζητείται ο τελεστής εκείνος ο οποίος θα εκτελεστεί τελευταίος (έχει τη μικρότερη ιεραρχία). ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 50

51 Δημουργία δυαδικού δέντρου παράστασης της 12-6*(3+8)-4*12 1ο Βήμα (ρίζα ο τελεστής που εκτελείται τελευταίος) *(3+8) 4*12 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 51

52 2ο Βήμα (αναδρομικά σε αριστερό και δεξί υποδένδρο) - - 4* *(3+8) ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 52

53 3ο Βήμα - - * 12 * ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 53

54 4ο Βήμα - - * 12 * ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 54

55 typedef enum {oros,telest } typos_dedomenon; typedef struct typos_komvou *typos_deikti; struct telestis { char xar; typos_deikti apaidi; typos_deikti dpaidi; }; union oros_telestis{ float arithmos; struct telestis xaraktiras; }; typedef struct typos_komvou { typos_dedomenon simadi; oros_tel dedomena; }; ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 55

56 Στους παραπάνω ορισμούς παρατηρούμε ότι μόνο οι κόμβοι που περιέχουν τελεστές έχουν πεδία δεικτών apaidi και dpaidi για τους υπόλοιπους δεν χρειάζονται γιατί είναι φύλλα. Στη συνέχεια παρουσιάζεται ένα αναδρομικό υποπρόγραμμα που υπολογίζει την τιμή της παράστασης. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 56

57 float ypologismos_dentrou(typos_deikti riza){ float oros1,oros2; char symbolo; switch (riza->simadi){ case oros:return riza->dedomena.arithmos; case telestis: oros1 = ypologismos_dentrou (riza->dedomena.xaraktiras.apaidi); oros2 = ypologismos_dentrou (riza->dedomena.xaraktiras.dpaidi); symbolo = riza->dedomena.xaraktiras.xar; } } return telestis(symbolo, oros1, oros2); ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 57

58 ΑΤΔ Δυαδικό Δένδρο Αναζήτησης

59 Δυαδικά Δέντρα Αναζήτησης (Binary Search Trees) Ορισμός : Ένα δυαδικό δέντρο αναζήτησης t είναι ένα δυαδικό δέντρο, το οποίο είτε είναι κενό είτε: (i) όλα τα περιεχόμενα στο αριστερό υποδέντρο του t είναι μικρότερα (αριθμητικά ή αλφαβητικά) από το περιεχόμενο της ρίζας του t. (ii) όλα τα περιεχόμενα στο δεξί υποδέντρο του t είναι μεγαλύτερα από το περιεχόμενο της ρίζας του t. (iii) το αριστερό και το δεξί υποδέντρο του t είναι επίσης δυαδικά δέντρα αναζήτησης. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 59

60 Οι βασικές πράξεις που ορίζουν τον ΑΤΔ δυαδικό δέντρο αναζήτησης είναι οι ακόλουθες: 1. Δημιουργία : Δημιουργεί ένα κενό ΔΔΑ. 2. Κενό : Ελέγχει αν το ΔΔΑ είναι κενό. 3. Αναζήτηση : Επιστρέφει τη θέση του κόμβου με δεδομένο περιεχόμενο. 4. Εισαγωγή : Εισάγει ένα κόμβο στο ΔΔΑ έτσι ώστε το δέντρο να παραμένει ένα ΔΔΑ. 5. Διαγραφή : Διαγράφει ένα κόμβο με δεδομένο περιεχόμενο έτσι ώστε το προκυπτόμενο δέντρο να είναι ένα ΔΔΑ. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 60

61 Αναζήτηση Αναδρομικό υποπρόγραμμα void anazitisi_dentrou(typos_deikti riza, typos_stoixeiou stoixeio, typos_deikti *prosorinos, int *vrethike) Aν το περιεχόμενο ενός κόμβου του ΔΔA riza είναι ίσο με stoixeio τοτε τo prosorinos δείχνει τον κόμβο αυτόν και η vrethike είναι 1, αλλιώς το *vrethike είναι 0 και τo prosorinos είναι NULL. */ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 61

62 void anazitisi_dentrou(typos_deikti riza, typos_stoixeiou stoixeio, typos_deikti *prosorinos, int *vrethike){ if (keno_dentro(riza)) { *prosorinos = NULL; *vrethike = 0; } else if (stoixeio == riza->dedomena){// βρέθηκε *prosorinos = riza; *vrethike = 1; } else if (stoixeio < riza->dedomena ) /* αναζήτηση αριστερού υπόδεντρου */ anazitisi_dentrou(riza->apaidi, stoixeio, prosorinos, vrethike); else /* αναζήτηση δεξιού υπόδεντρου */ anazitisi_dentrou(riza->dpaidi, stoixeio, prosorinos, vrethike); } } Πολυπλοκότητα Ο(h), όπου h το ύψος του δένδρου ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 62

63 Μη Αναδρομικό υποπρόγραμμα Πολυπλοκότης : Ο(h): void anazitisi_dentrou(typos_deikti riza, typos_stoixeiou stoixeio, typos_deikti *prosorinos, int *vrethike){ *prosorinos = riza; *vrethike = 0; } while (!(*vrethike) && ((*prosorinos!=null)) if (stoixeio < ((*prosorinos)->dedomena)) *prosorinos=*prosorinos)->apaidi; else if (stoixeio > ((*prosorinos)->dedomena)) *prosorinos=(*prosorinos)->dpaidi; else *vrethike = 1; ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 63

64 Εισαγωγή κόμβου int eisagogi_dentro(typos_deikti *riza, typos_stoixeiou stoixeio) /* Mετά: Aν το stoixeio δεν ανήκει στο ΔΔA τότε εισάγεται και επιστρέφεται 1, αλλιώς επιστρέφεται 0. */ Η εισαγωγή γίνεται πάντα ως νέο φύλλο. Σε θέση ώστε να διατηρείται η ιδιότητα ΔΔΑ. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 64

65 int eisagogi_dentro(typos_deikti *riza, typos_stoixeiou stoixeio){ int eisagogi; if (keno_dentro(*riza)){ *riza = malloc(sizeof(struct typos_komvou)); (*riza)->dedomena = stoixeio; (*riza)->apaidi =(*riza)->dpaidi = NULL; eisagogi = 1; }else if (stoixeio < (*riza)->dedomena ) /* εισαγωγή στο αριστερό υπόδεντρο */ eisagogi = eisagogi_dentro( &((*riza)->apaidi),stoixeio); else if (stoixeio > (*riza)->dedomena ) /* εισαγωγή στο δεξιό υπόδεντρο */ eisagogi = eisagogi_dentro( &((*riza)->dpaidi),stoixeio); else /* O κόμβος είναι ήδη στο δέντρο */ eisagogi = 0; return eisagogi; } ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 65

66 Μη αναδρομική εισαγωγή Ας υποθέσουμε ότι επιθυμούμε την εισαγωγή του Ν στο ακόλουθο δυαδικό δέντρο αναζήτησης. Να βρούμε τον πατέρα (γονέα) riza... K pateras prosorinos E P C G M R ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 66

67 riza.. K pateras E P. prosorinos C G M R ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 67

68 riza. K E P. pateras C G M R. prosorinos ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 68

69 riza. K E P C G M R pateras.. prosorinos ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 69

70 K E P C G M R. pateras N. prosorinos ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 70

71 typos_deikti anazitisi_patera(typos_deikti riza, typos_stoixeiou stoixeio, typos_deikti *pateras, int *vrethike){ /* Mετά: Aν το ΔΔA riza δεν είναι κενό και το stoixeio δεν ανήκει σε αυτό τότε το *vrethike είναι 0 και το *pateras είναι η διεύθυνση του κόμβου που θα ήταν πατέρας του stoixeio. Aν το riza δεν είναι κενό και το stoixeio ανήκει στο δέντρο και δεν βρίσκεται στη ρίζα του, τότε το *vrethike είναι 1 και το *pateras είναι η διεύθυνση του κόμβου πατέρα του. Aν το stoixeio βρίσκεται στη ρίζα του δέντρου τότε το *vrethike είναι 1 και το *pateras είναι NULL. Aν το δέντρο είναι κενό τότε το *vrethike είναι 0 και το *pateras είναι NULL. Aν το stoixeio ανήκει στο δέντρο τότε η συνάρτηση επιστρέφει τη διεύθυνση του κόμβου που περιέχει το stoixeio, αλλιώς η συνάρτηση επιστρέφει NULL. */ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 71

72 typos_deikti anazitisi_patera(typos_deikti riza, typos_stoixeiou stoixeio, typos_deikti *pateras, int *vrethike){ typos_deikti prosorinos; prosorinos = riza; *pateras = NULL; *vrethike = 0; } while (!(*vrethike) && (prosorinos!=null)){ if (stoixeio < prosorinos->dedomena){ *pateras = prosorinos; prosorinos = prosorinos->apaidi; } else if (stoixeio > prosorinos->dedomena){ *pateras = prosorinos; prosorinos = prosorinos->dpaidi; } else *vrethike = 1; /* ο κόμβος υπάρχει */ } return prosorinos; ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 72

73 int eisagogi_dentro(typos_deikti *riza, typos_stoixeiou stoixeio) /* Mετά: Aν το stoixeio δεν ανήκει στο ΔΔA τότε εισάγεται και επιστρέφεται 1, αλλιώς επιστρέφεται 0. */ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 73

74 int eisagogi_dentro(typos_deikti *riza, typos_stoixeiou stoixeio){ typos_deikti prosorinos, pateras; int vrethike; anazitisi_patera(*riza,stoixeio,&pateras,&vrethike); if (vrethike) return 0; else { prosorinos = malloc(sizeof(struct typos_komvou)); prosorinos->dedomena = stoixeio; prosorinos->apaidi = prosorinos->dpaidi = NULL; } } if ( pateras == NULL ) /* Kενό Δέντρο */ *riza = prosorinos; else if (stoixeio < pateras->dedomena) pateras->apaidi = prosorinos; else pateras->dpaidi = prosorinos; return 1; ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 74

75 Διαγραφή κόμβου Για τη διαγραφή ενός κόμβου x από ένα ΔΔΑ διακρίνουμε τρεις περιπτώσεις: 1. Ο κόμβος x είναι φύλλο. 2. Ο κόμβος x έχει ένα παιδί. 3. Ο κόμβος x έχει δύο παιδιά. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 75

76 1. Ο κόμβος x είναι φύλλο τον διαγράφουμε και τον δείκτη που οδηγεί σε αυτόν NULL D B F A C E G x. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 76

77 D B F A C E G x. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 77

78 2. Ο κόμβος x έχει ένα παιδί τον παρακάμπτουμε και τον διαγράφουμε x. D x. D B F B F A E G A E G ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 78

79 Διαγραφή κόμβου με το πολύ ένα υποδέντρο (ενοποίηση 1+2). pateras x. 2 1 ypodentro ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 79

80 ypodentro = x.dpaidi; if (ypodentro == NULL) ypodentro = x.apaidi; /* ο δείκτης ypodentro στο παιδί */ if (pateras == NULL)/*διαγράφεται η ρίζα*/ riza = ypodentro; else if (pateras.apaidi == x) pateras.apaidi = ypodentro; else pateras.dpaidi = ypodentro; free(x); ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 80

81 3. Ο κόμβος x έχει δύο παιδιά 3α. αντικατάσταση τιμής από την αμέσως επόμενη του και 3β. διαγραφή κόμβου προέλευσης τιμής Πού βρίσκεται η αμέσως επόμενη τιμή του; x. D Α F. pateras xepomenos. E G ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 81

82 x. E Α F xepomenos. E G ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 82

83 x. D Α F. pateras xepomenos. E G ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 83

84 Μη Αναδρομικός int diagrafi_dentrou (typos_deikti *riza, typos_stoixeiou stoixeio) /*Εντοπίζει τον κόμβο με περιεχόμενο stoixeio και τον διαγράφει από το ΔΔΑ*/ { typos_deikti x; //δείχνει τον κόμβο που αναζητούμε typos_deikti pateras; // ο πατέρας του x typos_deikti xepomenos; /*ο επόμενος του x*/ typos_deikti ypodentro; /* το υποδέντρο του x*/ int vrethike; /*true stoixeio βρίσκεται στο ΔΔΑ*/ συνέχεια ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 84

85 anazitisi_patera(*riza,stoixeio,x,&pateras,&vrethike); if (!vrethike) return 0; else { if ((x->apaidi!= NULL) && (x->dpaidi!= NULL)){ /*ο κόμβος έχει δύο παιδιά, εντοπισμός του επόμενου κόμβου και του πατέρα του */ xepomenos = x->dpaidi; pateras = x; while (xepomenos->apaidi!= NULL){ /*μονοπάτι αριστερών υποδέντρων*/ pateras = xepomenos; xepomenos = xepomenos->apaidi; } /* έχει βρεθεί ο επόμενος xepomenos και απόδοση των περιεχομένων του στον x */ x->dedomena = xepomenos->dedomena; συνέχεια ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 85

86 /* διαγραφει τον xepomenos */ /* περιπτώσεις όπου ο κόμβος έχει 0 ή 1 παιδί */ ypodentro = x ->dpaidi; if (ypodentro == NULL) ypodentro = x ->apaidi; if (pateras == NULL) /* διαγράφεται η ρίζα*/ riza = NULL; else if (pateras->apaidi == xepomenos) pateras->apaidi = ypodentro; else pateras->dpaidi = ypodentro; } } free(xepomenos); ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 86

87 ΑΝΑΔΡΟΜΙΚΟΣ void diagrafi_komvou(typos_deikti *riza, typos_stoixeiou stoixeio){ /* Προ:Υπάρχει ο κόμβος με περιεχόμενο stoixeio στο ΔΔΑ. Μετά: Διαγράφτηκε ο κόμβος με περιεχόμενο stoixeio */ typos_deikti prosorinos, xepomenos; if (!keno_dentro (*riza)) if (stoixeio == (*riza)->dedomena){// Βρέθηκε if (keno_dentro((*riza)->apaidi))){ /* Η riza δεν έχει αριστερό παιδί */ prosorinos = *riza; *riza = (*riza) -> dpaidi; free (prosorinos); }else if (keno_dentro((*riza)->dpaidi))) /* Η riza δεν έχει δεξί παιδί */{ prosorinos = *riza; *riza = (*riza)->apaidi; free (prosorinos); } else /* Η riza έχει δύο παιδιά */ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 87

88 { /* Εύρεση του ενδοδιατεταγμένου επόμενου */ xepomenos = (*riza) -> dpaidi; while (xepomenos -> apaidi! = NULL) xepomenos = xepomenos->apaidi; /* Απόδοση του περιεχομένου */ (*riza)->dedomena = xepomenos->dedomena; /* διαγραφή του ενδοδιατεταγμένου επόμενου */ diagrafi_komvou( &((*riza)-> dpaidi), (*riza)-> dedomena); } } } else /* stoixeio!= (*riza) -> dedomena */ if (stoixeio < (*riza)->dedomena) diagrafi_komvou(&((*riza)->apaidi),stoixeio); else diagrafi_komvou(&((*riza)->dpaidi),stoixeio); ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 88

89 Επεκταμένο Δυαδικό Δέντρο Εφαρμογές δυαδικών δέντρων : Κώδικες Huffman A B C D E G F Προσθέτουμε n+1 εξωτερικούς Κόμβους (ορθογώνιους) ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 89

90 l G = = 4 (μήκος μονοπατιού για τον κόμβο G) Μεγέθη δένδρου (αθροίσματα μονοπατιών των κόμβων) E = = 27 (μήκος εξωτερικού μονοπατιού) I = = 13 (μήκος εσωτερικού μονοπατιού) Πρόταση : Αν s i είναι το πλήθος των εξωτερικών κόμβων στο επίπεδο i, τότε : E h 1 i 2 si( i -1) Πρόταση : Αν n i είναι το πλήθος των εσωτερικών κόμβων στο επίπεδο i, τότε : I n ) h i 2 i( i -1 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 90

91 2 Χρήσιμα μέτρα (υποδηλώνουν την μορφή δένδρου) μέση απόσταση ενός εσωτερικού κόμβου μέση απόσταση ενός εξωτερικού κόμβου Ι(Τ) n Ε(Τ) n 1 Αναδρομικός Υπολογισμός του Ι με συνάρτηση I(T, L=0) I(, L) = 0 I(T =,L)= L-1+I(T α,l+1)+i(t δ,l+1) T α T δ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 91

92 E(, L) = L E(T =,L)= E(T α,l+1) + E(T δ,l+1) T α T δ Πρόταση : Για ένα δυαδικό δέντρο Τ με n εσωτερικούς κόμβους ισχύει : D(T) = E(T) - I(T) = 2n Απόδειξη με επαγωγή. Ισχύει για n=1, I(T 1 )=0, E(T 1 )=2, E(T 1 )-I(T 1 )=2 Έστω ότι ισχύει για n=k, δηλαδή Ε(Τ k )-Ι(Τ k ) = 2k. Προσθέτουμε έναν εσωτερικό κόμβο ακόμα (k+1 εσωτερικοί) σε επίπεδο L+1. I(T k+1 )=I(T k )+L; E(T k+1 )=E(T k )-L+2(L+1)=E(T k )+L+2 E(T k+1 )-I(T k+1 )= (E(T k )+L+2 )- ( I(T k )+L) = E(T k )-I(T k )+2 = 2k+2= 2(k+1) ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 92

93 Εφόσον E(T) = I(T) + 2n αρκεί να μελετηθούν οι ιδιότητες μόνο του Ε(Τ) ή του Ι(Τ). Ο μέσος αριθμός συγκρίσεων S(n) σε μια επιτυχημένη αναζήτηση είναι : S(n) 1 (υπόθεση: οι κόμβοι έχουν την ίδια πιθανότητα αναζήτησης) I n Ο μέσος αριθμός συγκρίσεων U(n) σε μια αποτυχημένη αναζήτηση είναι : U(n) E n 1 Συνδιάζοντας τις ανωτέρω σχέσεις προκύπτει : S(n) 1 1 n U(n) -1 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 93

94 Συνεπώς ο μέσος αριθμός συγκρίσεων για μια επιτυχημένη αναζήτηση είναι περίπου ο ίδιος με εκείνον για μια αποτυχημένη αναζήτηση. Γνωρίζοντας δηλαδή ότι ένα στοιχείο βρίσκεται στo δένδρο, η αναζήτησή του με τη μέθοδο των συγκρίσεων των κλειδιών του δεν προσφέρει μεγάλη βοήθεια. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 94

95 Ποιά είναι όμως η ελάχιστη και μέγιστη δυνατή τιμή του Ι από όλα τα δυαδικά δέντρα με n εσωτερικούς κόμβους ; Μέγιστη (όταν 1 στοιχείο ανά επίπεδο) Ι = (n-2) + (n-1) = n(n-1)/2 Ο(n 2 ) Η ελάχιστη τιμή του Ι επιτυγχάνεται για ένα πλήρες δυαδικό δέντρο με h επίπεδα: (στο i επίπεδο 2 i-1 κόμβους) 0 + (1 + 1) + ( ) + + (i-1)*2 i (h-1)* 2 h-1 Όπου 1 <= i <= h, το επίπεδο του δένδρου. Αν ένας κόμβος βρίσκεται στο i επίπεδο, χρειαζόμαστε i βήματα και στην χειρότερη περίπτωση h βήματα, δηλαδή log 2 (n+1), εφόσον n = 2 h -1 Επομένως το Ι min = O(nlog 2 n), εφόσον έχουμε n κόμβους ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 95

96 Γενίκευση: Εξωτερικό Μονοπάτι Βάρους Έστω δένδρο με n εξωτερικούς κόμβους (n- 1εσωτερικούς) Θετικοί αριθμοί (βάρη) w 1 w n αντιστοιχούνται στους εξωτερικούς κόμβους (συχνότητα πρόσβασης) Εξωτερικό Μονοπάτι Βάρους: Ποιο δένδρο με n εξωτερικούς θα μας δώσει το ελάχιστο Εξωτερικό Μονοπάτι βάρους; 1 i n w i I i Ποιός είναι ο καλύτερος κώδικας για το σύνολο των χαρακτήρων {C 1, C 2,, C n } με βάρη w 1, w 2,..., w n E ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 96

97 E = E = 3*2+3*5+2*7+1*10= = 45 E = 63 E 1 i n w i I i ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 97

98 Αλγόριθμος Huffman 1. Δημιουργία μιας λίστας από δυαδικά δέντρα με ένα κόμβο που περιέχουν τα βάρη w 1, w 2,..., w n ταξινομημένα (π.χ. σε αύξουσα σειρά), ένα για κάθε χαρακτήρα C 1, C 2,..., C n. 2. Τα παρακάτω βήματα εκτελούνται n-1 φορές: a) Εύρεση δύο δέντρων Τ και Τ της λίστας με ρίζες τα μικρότερα βάρη w και w. b) Αντικατάσταση των δέντρων αυτών με ένα δυαδικό δέντρο του οποίου η ρίζα είναι w + w και υποδέντρα του τα Τ και Τ δίνοντας τις τιμές 0 και 1 για τους δείκτες του αριστερού και δεξιού υποδέντρου του, αντίστοιχα. 3. Ο κώδικας για τον χαρακτήρα C i είναι εκείνη η διψήφια σειρά χαρακτήρων που ξεκινά από τη ρίζα του τελικού δυαδικού δέντρου και καταλήγει στο φύλλο C i. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 98

99 w +w 0 1 Τ Τ Στη συνέχεια ας υποθέσουμε ότι έχουμε τον παρακάτω πίνακα: Χαρακτήρας βάρος Α B C D E Η εφαρμογή του αλγορίθμου του Huffman παράγει τις παρακάτω διαδοχικές φάσεις δημιουργίας του δυαδικού δέντρου αποκωδικοποίησης: ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 99

100 1) B E A D C ) B E A D C ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 100

101 ) B E A D C ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 101

102 ) B E A D C ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 102

103 ) B E A D C ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 103

104 Οι κώδικες Huffman που λαμβάνονται από το παραπάνω δέντρο είναι: Χαρακτήρας A B C D E Κώδικας Huffmann Επίσης η ποσότητα E w i I i είναι ίση με : 1 i n Ε = 0.1*3+0.15*3+0.2*2+0.25*2+0.3*2 = 2.25 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 104

105 Ας σημειωθεί ότι είναι δυνατή μια διαφορετική αντιστοιχία κωδικών στους χαρακτήρες του παραδείγματος με την ίδια τιμή για την Ε. Πράγματι, στη δεύτερη φάση δημιουργίας του δυαδικού δέντρου θα μπορούσαμε να προχωρήσουμε όπως φαίνεται παρακάτω: B E A D C ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 105

106 B E C A D ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 106

107 B E C A D ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 107

108 Στην περίπτωση αυτή οι κώδικες που αντιστοιχούν στους χαρακτήρες δίνονται από τον παρακάτω πίνακα : Χαρακτήρας A B C D E Κώδικας Huffmann ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 108

109 Αλγόριθμος αποκωδικοποίησης Huffman 1. Αρχικά ένας δείκτης p τοποθετείται στη ρίζα του δέντρου Huffman. 2. Οσο δεν έχει βρεθεί το τέλος του μηνύματος να εκτελούνται τα παρακάτω: α. Έστω x είναι το επόμενο bit στη σειρά χαρακτήρων. β. Αν x == 0 τότε p = p.apaidi διαφορετικά p = p.dpaidi γ. Αν ο p δείχνει σ' ένα φύλλο τότε: i. Να εκτυπωθεί ο χαρακτήρας αυτού του φύλλου ii. p = riza ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 109

110 Για παράδειγμα, ας υποτεθεί ότι το μήνυμα έχει ληφθεί και κωδικοποιήθηκε με τη δημιουργία του δεύτερου δέντρου Huffman. Τότε η αποκωδικοποίηση είναι: C C C A A Ενώ με το πρώτο δένδρο θα ήταν: A A A D D B E C A D ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 110

111 1 Χρονική Πολυπλοκότητα Αλγορίθμων για ΔΔΑ 2 h = h = Τέλεια ισοζυγισμένο δένδρο αν το μήκη των μονοπατιών προς τα φύλλα διαφέρουν το πολύ κατά ένα. 7 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 111

112 Το ύψος h ενός ΔΔΑ εξαρτάται από το σχήμα του. Ας υποθέσουμε ότι οι κόμβοι έχουν φθάσει με μια τυχαία σειρά, τότε πόσες περισσότερες συγκρίσεις, κατά μέσο όρο, απαιτούνται σε μια αναζήτηση του προκυπτόμενου τυχαίου ΔΔΑ από εκείνες που απαιτεί ένα τέλεια ισοζυγισμένο ΔΔΑ; n στοιχεία έχουν n! διατάξεις με ίση πιθανότητα εμφάνισης. S συγκρίσεις για επιτυχημένη αναζήτηση, U για αποτυχημένη Για την εισαγωγή S(n) 1 1 n U(n) -1 (1) S(n) 1 U(0) U(1)... n U(n -1) (2) ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 112

113 (1),(2) (n 1)U(n) 2n U(0) U(1)... U(n -1) (3) n = n+1 n U(n -1) 2(n -1) U(0) U(1)... U(n - 2) (4) (3) - (4) U(n) U(n -1) 2 n 1 (5) ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 113

114 U(n) 0 n=1, n=2,... U(1) U(2)... U(0) U(1) U(1) U(1) U(n) n 1 ή U(n) 2 Hn 1 2 (6) ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 114

115 όπου H n n 1 αρμονικός αριθμός Hn ln(n) γ n 12n 120n n, γ σταθερά του Euler - (7) (6) (7) U(n) 2 Hn ln(n) ln(n) (ln2) (log2n) U(n) 2 (ln2) (log2n) ή U(n) 1.39 log2n ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 115

116 U(n) 1.39 log 2n Το μέσο κόστος για τη (τυχαία) μη ισοζύγιση ενός ΔΔΑ είναι περίπου 39% περισσότερες συγκρίσεις. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 116

117 AVL

118 AVL δέντρα h L - h R 1 h L h R G.M. Adelson_Velkii και E.M. Landis 1962 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 118

119 AVL Δέντρα _ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 119

120 Μη AVL Δέντρα ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 120

121 Εισαγωγή κόμβου 4, 6 : 4 12 : _ Αριστερή στροφή 6 _ 4 12 _ 12 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 121

122 8, 14 : 6 _ 4 _ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 122

123 7 : 6 6 _ 8 _ 4 12 _ 4 8 _ 6 12 _ 7 8 _ 14 Δεξιά στροφή _ 7 Αριστερή στροφή 12 _ 14 _ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 123

124 4 Περιπτώσεις LL : ο νέος κόμβος Υ εισάγεται στο αριστερό υποδέντρο του αριστερού υποδέντρου του Α. LR : ο νέος κόμβος Υ εισάγεται στο δεξί υποδέντρο του αριστερού υποδέντρου του Α. RR : ο νέος κόμβος Υ εισάγεται στο δεξί υποδέντρο του δεξιού υποδέντρου του Α. RL : ο νέος κόμβος Υ εισάγεται στο αριστερό υποδέντρο του δεξιού υποδέντρου του Α. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 124

125 Περίπτωση 1 (RR) : Δεξιά Υψηλό p. r Αριστερή στροφή p. _ 4. prosorinos x h Τ 1 x. p prosorinos. r 1 2 h+1 _ 3 Τ 3 h+1 Τ 2 Τ 3 h Τ 1 Τ 2 Συνολικό ύψος = h+3 νέος Συνολικό ύψος = h+2 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 125

126 typedef enum{true, FALSE}; typedef enum{ay, IY, DY} paragon_isozygisis; typedef struct typos_komvou *typos_deikti; typedef struct typos_komvou{ typos_stoixeiou dedomena; typos_deikti apaidi, dpaidi; paragon_isozygisis pi; } typos_komvou; ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 126

127 void aristeri_peristrofi (typos_deikti *p);{ /*Ο p δείχνει τη ρίζα του υποδέντρου που περιστρέφεται*/ typos_deikti prosorinos; if (keno_dentro(*p)) /*Είναι αδύνατη η περιστροφή*/ printf( Κενό δέντρο ) /*ενός κενού δέντρου*/ else if (keno_dentro((*p)->dpaidi)) /*Είναι αδύνατο να γίνει ρίζα ένα κενό υποδέντρο*/ printf ( Κενό δεξί υποδέντρο ) else{ prosorinos = (*p)->dpaidi; (*p)->dpaidi = prosorinos->apaidi; prosorinos->apaidi =* p; *p = prosorinos; } } /*aristeri_peristrofi*/ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 127

128 Περίπτωση 2 (RL):Αριστερά Υψηλό r 2 h w 1 Τ 1 h h - 1 ή h Τ 2 ή h - 1 ή h Τ 3 Τ 4 νέος νέος Ενα από τα Τ 2 ή Τ 3 έχει ύψος h.. Συνολικό ύψος = h+3 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 128

129 r w h Τ 1 x Τ 2.Συνολικό ύψος = h+3 Τ 3 h - 1 Τ 4 h ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 129

130 _ w r x h Τ 1 Τ 2 Τ 3 Τ 4.Συνολικό ύψος = h+2 Αποκατάσταση ισοζύγισης (διπλή RL περιστροφή). Οι αριθμοί στους κύκλους δηλώνουν την προτεραιότητα των ενεργειών. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 130

131 παλιό w νέο r νέο x _ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 131

132 H αποκατάσταση της ισοζύγισης με τις RR και RL περιστροφές υλοποιείται με το παρακάτω υποπρόγραμμα. void dexi_varos(typos_deikti *riza,boolean *ypsilotero){ typos_deikti x; //δείκτης στο δεξί υποδέντρο της ρίζας typos_deikti w; x = (*riza)->dpaidi; switch (x->pi){ case DY: //απλή RR περιστροφή (*riza)->pi = IY; x->pi = IY; aristeri_peristrofi(riza); *ypsilotero = FALSE; break; case IY: /*Δεν συμβαίνει η περίπτωση αυτή*/ printf ( Λάθος ); break; συνέχεια ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 132

133 case AY:/*διπλή RL περιστροφή*/ w = x->apaidi; switch (w->pi){ case IY: (*riza)->pi=iy; x->pi= IY; break; case AY: (*riza)->pi=iy; x->pi= DY; break; case DY: (*riza)->pi=ay; x->pi= IY; break; } w->pi=iy; dexia_peristrofi(&x); /*o x δείχνει τώρα τον w*/ (*riza)->dpaidi = x; aristeri_peristrofi(riza); ypsilotero = FALSE; } // of switch }/*dexi_varos*/ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 133

134 Tο υποπρόγραμμα εισαγωγής ενός κόμβου σε ένα AVL δέντρο είναι το ακόλουθο : void avl_eisagogi (typos_deikti *riza, typos_deikti prosorinos, typos_deikti stoixeio, boolean *ypsilotero) { συνέχεια ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 134

135 if (keno_dentro(*riza)){ *riza = prosorinos; (*riza)->apaidi = NULL; (*riza)->dpaidi = NULL; (*riza)->pi = IY; *ypsilotero = TRUE;} else if (prosorinos->dedomena==(*riza)->dedomena) printf( Ο κόμβος υπάρχει ήδη στο ΔΔΑ ); else if (prosorinos->dedomena<(*riza)->dedomena){ /*εισαγωγή στο αριστερό υποδέντρο*/ avl_eisagogi(&((*riza)->apaidi)), prosorinos, stoixeio, ypsilotero); συνέχεια ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 135

136 } if (*ypsilotero) switch ((*riza)->pi){ case AY: aristero_varos(riza, ypsilotero); break; case IY: (*riza)->pi=ay; *ypsilotero=true; break; case DY: (*riza)->pi=iy; *ypsilotero=false; break; } συνέχεια ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 136

137 else{/*εισαγωγή στο δεξί υποδέντρο*/ avl_eisagogi (&((*riza)->dpaidi), prosorinos, stoixeio, ypsilotero); if (*ypsilotero) switch ((*riza)->pi){ case AY: (*riza)->pi=iy; *ypsilotero=false; break; case IY: (*riza)->pi=dy; *ypsilotero=true; break; case DY: dexi_varos(riza, ypsilotero); break; } } } }/*avl_eisagogi*/ ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 137

138 p Διαγραφή p Αμετάβλητο ύψος Τ1 Τ1 Τ2 Τ2 διαγράφτηκε p Περίπτωση 1 Ελαττωμένο ύψος Τ1 Τ2 Τ1 Τ2 διαγράφτηκε Περίπτωση 2 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 138

139 p q p q Αμετάβλητο ύψος h-1 Τ1 h h h-1 Τ1 Τ3 h h Τ2 Τ3 Τ2 διαγράφτηκε Περίπτωση 3a ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 139

140 p q p q Ελαττωμένο ύψος h-1 Τ1 h h-1 h-1 Τ1 Τ2 Τ3 Τ2 h διαγράφτηκε Τ3 Περίπτωση 3b ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 140

141 h-1 Τ1 r p q p r Αμετάβλητο ύψος q h-1 h-1 h-1 Τ2 ή Τ3 h-1 Τ2 h-1 h-2 ή Τ3 Τ4 Τ1 Τ4 h-2 Περίπτωση 3c Σχήμα 8.22 Διάφορες περιπτώσεις διαγραφής κόμβου από ένα AVL δέντρο. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 141

142 Το ύψος ενός AVL δέντρου h-1 F r h-2 F l Fh Fh-1 Fh- 2 1 F 0 1 F 1 2 F h k h 2 ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 142

143 h 1.44 log 2 F h ή h 1.44 log2n Επομένως οι αλγόριθμοι για την επεξεργασία των AVL δέντρων απαιτούν το πολύ 44% περισσότερο χρόνο από το βέλτιστο. Στην πράξη όμως έχει βρεθεί ότι ο χρόνος αυτός είναι πολύ λιγότερος. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 143

144 Τέλος Ενότητας

145 Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 145

146 Σημειώματα

147 Σημείωμα Αναφοράς Copyright Εθνικόν και Καποδιστριακόν Πανεπιστήμιον Αθηνών, Κοτρώνης Ιωάννης. «Δομές Δεδομένων και Τεχνικές Προγραμματισμού. Ενότητα 6: ΑΤΔ Δέντρο, ΑΤΔ Δυαδικό Δέντρο Αναζήτησης (ΔΔΑ)». Έκδοση: Αθήνα Διαθέσιμο από τη δικτυακή διεύθυνση: ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 147

148 Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 148

149 Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. ΕΝΟΤΗΤΑ 4 - ΑΤΔ Δένδρο, ΑΤΔ Δυαδικό Δένδρο Αναζήτησης (ΔΔΑ) 149

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

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

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

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

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

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

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

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

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

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

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

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

ρίζα E F G H I J επίπεδο 1

ρίζα E F G H I J επίπεδο 1 Δέντρα (Trees) Ορισµός: Ενα δέντρο είναι ένα πεπερασµένο µη κενό σύνολο κόµβων τέτοιο ώστε: 1.Yπάρχει ένας µοναδικός κόµβος, που καλείται ρίζα, ο οποίος δεν έχει προηγούµενο. 2.Οι υπόλοιποι κόµβοι χωρίζονται

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

υαδικό δέντρο έντρα (Trees) -Ιεραρχική οµή

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

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

AVL δέντρα. h L h R. G.M. Adelson_Velkii και E.M. Landis 1962

AVL δέντρα. h L h R. G.M. Adelson_Velkii και E.M. Landis 1962 AVL δέντρα L - R 1 L R G.M. AdelsonVelkii και E.M. Landis 1962 AVL Δέντρα Μη AVL Δέντρα Εισαγωγή κόμβου 4, 6 : 4 12 : 6 4 6 Αριστερή στροφή 6 4 12 12 8, 14 : 6 4 12 8 14 7 : 4 6 12 6 4 8 6 8 12 7 8 14

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

Μη AVL Δέντρα Εισαγωγή κόμβου 4, 6 : 4 12 :

Μη AVL Δέντρα Εισαγωγή κόμβου 4, 6 : 4 12 : AVL δέντρα AVL Δέντρα L R G.M. AdelsonVelkii και E.M. Landis 192 Μη AVL Δέντρα Εισαγωγή κόμβου, : : Αριστερή στροφή 1 8, 1 : 8 1 7 : 7 8 1 Δεξιά στροφή 8 7 Αριστερή στροφή 1 8 7 1 Περιπτώσεις LL : ο νέος

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

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

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

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

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

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

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

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

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

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

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Συγχωνευτική Ταξινόμηση (Merge Sort) 7 2 9 4 2 4 7 9 7 2 2 7 9 4

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 6: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ: ΠΡΟΒΛΗΜΑ ΑΝΑΖΗΤΗΣΗΣ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος

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

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση - Συγχώνευση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν

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

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 8: C++ ΒΙΒΛΙΟΗΚΗ STL, ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Δομές Δεδομένων ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής Δομές

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

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

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

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

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 5 η Άσκηση Συγχώνευση & απαρίθμηση Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης

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

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

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

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

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

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Εισαγωγή στους Αλγορίθμους Ενότητα 6 η Άσκηση - DFS δένδρα Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 4: Δομές Ελέγχου Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Προγραμματισμός Η/Υ Βασικές Προγραμματιστικές Δομές ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος Δομή Ελέγχου Ροής (IF) Η εντολή IF χρησιμοποιείται όταν

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι Σημειώσεις MATLAB Ενότητα 4 ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 4 Σημειώσεις βασισμένες στο

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

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra Εισαγωγή στους Αλγορίθμους Ενότητα 1η Άσκηση Αλγόριθμος Dijkra Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upara.gr Άδειες Χρήσης Το παρόν

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 9: Μνήμη Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά Το έργο

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Βέλτιστος Έλεγχος Συστημάτων

Βέλτιστος Έλεγχος Συστημάτων Βέλτιστος Έλεγχος Συστημάτων Ενότητα 7: Βέλτιστος έλεγχος συστημάτων διακριτού χρόνου Καθηγητής Αντώνιος Αλεξανδρίδης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σημείωμα

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αναζήτηση και ταξινόµηση 7 Αναζήτηση (search) Πρόβληµα: αναζήτηση της καταχώρησης key στη

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

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής Ανοικτά Ακαδημαϊκά Μαθήματα Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αθήνας Πίνακες Νερού σε κατάσταση Κορεσμού Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής Διπλ. Ναυπηγός Μηχανολόγος Μηχανικός M.Sc. Διασφάλιση

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα6: Εμφωλυευμένες δομές κώδικα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

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

ΣΤΟΙΒΕΣ (stacks) Σχήµα: Λειτουργία Στοίβας

ΣΤΟΙΒΕΣ (stacks) Σχήµα: Λειτουργία Στοίβας ΣΤΟΙΒΕΣ (stacks) Η στοίβα είναι µια συλλογή δεδοµένων µε γραµµική διάταξη στην οποία όλες οι εισαγωγές και οι διαγραφές γίνονται στο ένα άκρο που λέγεται κορυφή (top) της στοίβας Σχήµα: Λειτουργία Στοίβας

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

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε

Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Διαίρει και Κυρίευε Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Διαίρει και Κυρίευε 7 9 4 4 7 9 7 7 9 4 4 9 7 7 9 9 4 4 Διαίρει και Κυρίευε

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

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

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

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 2 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 2: Έλεγχος συνθηκών Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 2 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική Επιστήμη

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

Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση

Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση Χωρικές σχέσεις και Γεωμετρικές Έννοιες στην Προσχολική Εκπαίδευση Ενότητα 7: Κανονικότητες, συμμετρίες και μετασχηματισμοί στο χώρο Δημήτρης Χασάπης Τμήμα Εκπαίδευσης και Αγωγής στην Προσχολική Ηλικία

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

Βάσεις Περιβαλλοντικών Δεδομένων

Βάσεις Περιβαλλοντικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 3: Μοντέλα βάσεων δεδομένων Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται

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

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

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

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

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

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

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2007-08... 3 1.1 Άσκηση 5...

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

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Μελανέρυθρα δεντρα v 3 8 z Red-Black Trees 1 Περιγραφή και Διαβασμα Από

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Α Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2011-12... 3 1.1 Άσκηση 1...

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

Βάσεις Περιβαλλοντικών Δεδομένων

Βάσεις Περιβαλλοντικών Δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Βάσεις Περιβαλλοντικών Δεδομένων Ενότητα 2: Εισαγωγή Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

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

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

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

Διοικητική Λογιστική

Διοικητική Λογιστική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Διοικητική Λογιστική Ενότητα 10: Προσφορά και κόστος Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και

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

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής

Προγραμματισμός Η/Υ. Ενότητα 4: Εντολές Επιλογής Προγραμματισμός Η/Υ Ενότητα 4: Νίκος Καρακαπιλίδης, Καθηγητής Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών Σκοποί ενότητας Έλεγχος της ροής ενός προγράμματος

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

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 3: Έλεγχος ροής προγράμματος Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (Java) Ενότητα 3 ΕΛΕΓΧΟΣ ΡΟΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Ι. Ελεγκτές συνθηκών ή περιπτώσεων:

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Συναρτήσεις 60 Ροή ελέγχου Είναι η σειρά µε την οποία εκτελούνται οι εντολές. Μέχρι τώρα, «σειριακή»,

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

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2) Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskl Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Emil: zro@ei.uptrs.r Άδειες Χρήσης Το παρόν

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

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Προγραμματισμός H/Y Ενότητα 2: Εντολές ελέγχου ροής Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

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

Γενική Φυσική Ενότητα: Δυναμική Άκαμπτου Σώματος

Γενική Φυσική Ενότητα: Δυναμική Άκαμπτου Σώματος Γενική Φυσική Ενότητα: Δυναμική Άκαμπτου Σώματος Όνομα Καθηγητή: Γεώργιος Βούλγαρης Τμήμα: Μαθηματικό Σελίδα 2 1. Ερωτήσεις Δυναμικής Άκαμπτου Σώματος... 4 1.1 Ερώτηση 1... 4 1.2 Ερώτηση 2... 4 1.3 Ερώτηση

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

Πληροφορική ΙΙ Θεματική Ενότητα 5

Πληροφορική ΙΙ Θεματική Ενότητα 5 Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Πληροφορική ΙΙ Θεματική Ενότητα 5 Λογικοί Τελεστές Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 9: ΒΑΣΙΚΕΣ ΤΕΧΝΙΚΕΣ ΣΧΕΔΙΑΣΜΟΥ ΚΑΙ ΑΝΑΛΥΣΗΣ ΑΛΓΟΡΙΘΜΩΝ ΕΞΙΣΟΡΡΟΠΗΣΗ, ΔΙΑΙΡΕΙ ΚΑΙ ΒΑΣΙΛΕΥΕ

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

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Α Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2010-11... 3 1.1 Άσκηση 1...

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

Γενική Φυσική Ενότητα: Ταλαντώσεις

Γενική Φυσική Ενότητα: Ταλαντώσεις Γενική Φυσική Ενότητα: Ταλαντώσεις Όνομα Καθηγητή: Γεώργιος Βούλγαρης Τμήμα: Μαθηματικό Σελίδα 2 1. Ερωτήσεις Ταλαντώσεων... 4 1.1 Ερώτηση 1... 4 2. Ασκήσεις Ταλαντώσεων... 4 2.1 Άσκηση 1... 4 2.2 Άσκηση

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 11: ΠΡΟΒΛΗΜΑ ΔΙΑΤΡΕΞΗΣ ΓΡΑΦΗΜΑΤΟΣ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 11: ΠΡΟΒΛΗΜΑ ΔΙΑΤΡΕΞΗΣ ΓΡΑΦΗΜΑΤΟΣ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 11: ΠΡΟΒΛΗΜΑ ΔΙΑΤΡΕΞΗΣ ΓΡΑΦΗΜΑΤΟΣ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών

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

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Δυναμικός Προγραμματισμός Δυναμικός Προγραμματισμός 1 Περίληψη

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

Ηλεκτρονικοί Υπολογιστές

Ηλεκτρονικοί Υπολογιστές ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 9: Πίνακες στη C++ Ζαχαρούλα Ανδρεοπούλου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων Δρ.Ευσταθία Παπαγεωργίου, Αναπληρώτρια Καθηγήτρια Τμήμα Ιατρικών Εργαστηρίων Το περιεχόμενο του μαθήματος

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων Δρ.Ευσταθία Παπαγεωργίου, Αναπληρώτρια Καθηγήτρια Τμήμα Ιατρικών Εργαστηρίων Το περιεχόμενο του μαθήματος διατίθεται

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

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

Οντοκεντρικός Προγραμματισμός Οντοκεντρικός Προγραμματισμός Ενότητα 2: Η ΓΛΩΣΣΑ JAVA Σύγκριση JAVA-C ΔΙΔΑΣΚΟΝΤΕΣ: Ιωάννης Χατζηλυγερούδης, Χρήστος Μακρής Πολυτεχνική Σχολή Τμήμα Μηχανικών Η/Υ & Πληροφορικής ΣΥΓΚΡΙΣΗ JAVA - C ΤΥΠΟΙ

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

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Ενότητα 2: Κριτήρια Σύγκλισης Σειρών Λουκάς Βλάχος Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ενότητα 10: Πρότυπα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

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

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort) Ιωάννης Τόλλης Τμήμα Επιστήμης Υπολογιστών Ταχυταξινόμηση (Quick-Sort) 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7

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

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5 Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

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

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

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Β Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2012-13... 3 1.1 Άσκηση 4...

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

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική Δρ.Ευσταθία Παπαγεωργίου, Αναπληρώτρια Καθηγήτρια Τμήμα Ιατρικών Εργαστηρίων Το περιεχόμενο του μαθήματος

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

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης Ενότητα 1: Κρίσιμα συμβάντα Δέσποινα Πόταρη, Γιώργος Ψυχάρης Σχολή Θετικών επιστημών Τμήμα Μαθηματικό Απομαγνητοφώνηση αποσπάσματος από Β Λυκείου

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

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Ενότητα. Εισαγωγή στις βάσεις δεδομένων Ενότητα 1 Εισαγωγή στις βάσεις δεδομένων 2 1.1 Βάσεις Δεδομένων Ένα βασικό στοιχείο των υπολογιστών είναι ότι έχουν τη δυνατότητα να επεξεργάζονται εύκολα και γρήγορα μεγάλο πλήθος δεδομένων και πληροφοριών.

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

Μηχανολογικό Σχέδιο Ι

Μηχανολογικό Σχέδιο Ι ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Ενότητα # 2: Όψεις Όνομα Καθηγητή: Παρασκευοπούλου Ροδούλα Α.Π.Θ Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι)

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι) ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Πίνακες [2/2] (Δισδιάστατοι) Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών ΠΛΗΡΟΦΟΡΙΚΗ Ι (MATLAB) Ενότητα 6 Σημειώσεις βασισμένες στο βιβλίο Το MATLAB στην Υπολογιστική

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 9: Αναδρομή

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 9: Αναδρομή ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 9: Αναδρομή Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Αναδροµή 24 Αναδροµή Πληροφορική Ι Μ. ρακόπουλος 24 Αναδροµικές µέθοδοι Μια µέθοδος καλεί τον εαυτό της

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

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα Ενότητα: Ασκήσεις 1 Ανδριανός Ε. Τσεκρέκος Τμήμα Λογιστικής & Χρηματοοικονομικής Σελίδα 2 1. Σκοποί ενότητας... 5 2.

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

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

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

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

Διδακτική των εικαστικών τεχνών Ενότητα 1

Διδακτική των εικαστικών τεχνών Ενότητα 1 Διδακτική των εικαστικών τεχνών Ενότητα 1 Ουρανία Κούβου Εθνικὸ καi Καποδιστριακὸ Πανεπιστήμιο Αθηνών Τμήμα Εκπαίδευσης και Αγωγής στην Προσχολική Ηλικία Ενότητα 1. Ιστορική αναδρομή της διδακτικής της

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

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας ISO 17025 5.9. ΔΙΑΣΦΑΛΙΣΗ ΤΗΣ ΠΟΙΟΤΗΤΑΣ ΤΩΝ ΑΠΟΤΕΛΕΣΜΑΤΩΝ ΔΟΚΙΜΩΝ (1) 5.9.1 Το Εργαστήριο

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

Κβαντική Επεξεργασία Πληροφορίας

Κβαντική Επεξεργασία Πληροφορίας Κβαντική Επεξεργασία Πληροφορίας Ενότητα 4: Κλασσική και Κβαντική Πιθανότητα Σγάρμπας Κυριάκος Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σκοποί ενότητας Σκοπός της ενότητας

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

Επεξεργασία Στοχαστικών Σημάτων

Επεξεργασία Στοχαστικών Σημάτων Επεξεργασία Στοχαστικών Σημάτων Βέλτιστα γραμμικά χρονικά αναλλοίωτα συστήματα Σεραφείμ Καραμπογιάς Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Βέλτιστα γραμμικά χρονικά αναλλοίωτα συστήματα

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 2: Τύποι μεταβλητών Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 3: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΓΡΑΦΗΜΑΤΑ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Ασκήσεις "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2003-04... 3 1.1 Άσκηση 1 (0.2 μονάδες)...

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

Φιλοσοφία της Ιστορίας και του Πολιτισμού

Φιλοσοφία της Ιστορίας και του Πολιτισμού Φιλοσοφία της Ιστορίας και του Πολιτισμού Ενότητα 1: Εισαγωγή στις έννοιες Ιστορίας και Πολιτισμού Λάζου Άννα Εθνικὸ και Καποδιστριακὸ Πανεπιστήμιο Aθηνών Τμήμα Φιλοσοφίας Παιδαγωγικής και Ψυχολογίας Φιλοσοφία

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 1: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ΟΡΙΣΜΟΙ Δημήτριος Κουκόπουλος Σχολή Οργάνωσης και Διοίκησης Επιχειρήσεων Τμήμα Διαχείρισης Πολιτισμικού Περιβάλλοντος και Νέων Τεχνολογιών ΠΕΡΙΕΧΟΜΕΝΟ

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

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

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

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

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

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας 1 Περιεχόμενα 1 η Άσκηση... 4 2 η Άσκηση... 7 3 η Άσκηση... 10 Χρηματοδότηση... 12 Σημείωμα Αναφοράς... 13 Σημείωμα Αδειοδότησης...

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

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

Λογικός Προγραμματισμός Ασκήσεις Λογικός Προγραμματισμός Ασκήσεις Παναγιώτης Σταματόπουλος Τμήμα Πληροφορικής και Τηλεπικοινωνιών Περιεχόμενα 1. Α Ομάδα Ασκήσεων "Λογικού Προγραμματισμού" Ακαδημαϊκού Έτους 2007-08... 3 1.1 Άσκηση... 3

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

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ

Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ Υπολογιστική άλγεβρα Ενότητα 10: Βάσεις Groebner ενός ιδεώδους ΙΙΙ Ράπτης Ευάγγελος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Κεφάλαιο 10 Βάσεις Groebner ενός ιδεώδους 10.1 Τρίτο μέρος Επαναλαμβάνουμε

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

Μηχανολογικό Σχέδιο Ι

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

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

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

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

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Δομημένος Προγραμματισμός Ενότητα 5: Εντολές επανάληψης Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων Εισαγωγή στην Διοίκηση Επιχειρήσεων Ενότητα 7: ΑΣΚΗΣΕΙΣ ΜΕΓΕΘΟΥΣ ΕΠΙΧΕΙΡΗΣΗΣ Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης

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

Σχεδίαση Μεικτών VLSI Κυκλωμάτων Ενότητα 9: Ευστάθεια και Αντιστάθμιση Συχνότητας

Σχεδίαση Μεικτών VLSI Κυκλωμάτων Ενότητα 9: Ευστάθεια και Αντιστάθμιση Συχνότητας Σχεδίαση Μεικτών VLSI Κυκλωμάτων Αγγελική Αραπογιάννη Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής και Τηλεπικοινωνιών Σύστημα αρνητικής ανάδρασης Y X s H(s) 1 H(s) Συνάρτηση μεταφοράς κλειστού βρόχου Ταλαντωτής

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