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

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

8.6 Κλάσεις και αντικείμενα 8.7 Δείκτες σε γλώσσα μηχανής

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

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

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον υποδειγματική διδασκαλία Κεφ. 3 Δομές Δεδομένων & αλγόριθμοι

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

Οι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες

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

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

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

13/5/2015 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ. Δομές Δεδομένων. Ουρές Προτεραιότητας

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο Κάθε δομή μπορεί να χρησιμοποιηθεί σε οποιοδήποτε πρόβλημα ή εφαρμογή

Επιµέλεια Θοδωρής Πιερράτος

Οι δομές δεδομένων στοίβα και ουρά

Κάθε στοιχείο που γίνεται αντιληπτό με μία από τις πέντε αισθήσεις μας

Συλλογές, Στοίβες και Ουρές

Σύνοψη Προηγούμενου. Λίστες (Lists) Συνδεδεμένες Λίστες: Εισαγωγή (1/2) Συνδεδεμένες Λίστες. Ορέστης Τελέλης

ΣΗΜΕΙΩΣΕΙΣ ΘΕΩΡΙΑΣ ΚΕΦΑΛΑΙΟ 3 ΠΡΟΣΘΗΚΗ

ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

Στοίβες με Δυναμική Δέσμευση Μνήμης

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ Κεφάλαιο 3 ο

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

Ισορροπημένα Δένδρα. για κάθε λειτουργία; Ισορροπημένο δένδρο : Διατηρεί ύψος κάθε εισαγωγή ή διαγραφή

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

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

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

Οι δυναμικές δομές δεδομένων στην ΑΕΠΠ

ΚΕΦΑΛΑΙΟ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Προγραμματισμός Η/Υ. 4 η ενότητα: Δομές Δεδομένων. Τμήμα. Τεχνολόγων Περιβάλλοντος. ΤΕΙ Ιονίων Νήσων. Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων

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

Διάλεξη 05: Αφηρημένοι Τύποι Δεδομένων

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 5. Αφηρημένοι Τύποι Δεδομένων / Στοίβες και Ουρές

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

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

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

Βασικές Δομές Δεδομένων

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

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

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

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

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

Ορισµοί κεφαλαίου. Σηµαντικά σηµεία κεφαλαίου

3 ΟΥ και 9 ΟΥ ΚΕΦΑΛΑΙΟΥ

Ενδεικτικές Ερωτήσεις Θεωρίας

ENOTHTA 3 ΟΜΕΣ Ε ΟΜΕΝΩΝ

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

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

4. Συνδεδεμένες Λίστες

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

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

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

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

Δένδρα Αναζήτησης Πολλαπλής Διακλάδωσης

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

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

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗΝ Α.Ε.Π.Π. Γ ΤΕΧΝΟΛΟΓΙΚΗΣ. Όνομα:.. Βαθμός: /100

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2


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

Επιλογές και Κριτήρια Σχεδιασμού ΑΤΔ Ανεξαρτήτως από Γλώσσα Υλοποίησης 24/4/2012

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

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

Βασικές οµές εδοµένων

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

Εισαγωγή στις Αρχές της επιστήμης των Η/Υ. Β Λυκείου

Φίλη μαθήτρια, φίλε μαθητή,

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

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

Θεωρία Υπολογισμού και Πολυπλοκότητα Ασυμφραστικές Γλώσσες (2)

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

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

Βασικές Έννοιες Δοµών Δεδοµένων

Α1. Στον προγραµµατισµό χρησιµοποιούνται δοµές δεδοµένων. 1. Τι είναι δυναµική δοµή δεδοµένων; Μονάδες 3 2. Τι είναι στατική δοµή δεδοµένων;

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

ΚΕΦΑΛΑΙΟ 3 Ο ΟΜΕΣ Ε ΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Κεφ.11: Ευρετήρια και Κατακερματισμός

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

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

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

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

Δομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη

Σύστημα Πλεονάσματος και Αναπαράσταση Αριθμών Κινητής Υποδιαστολής

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

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

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

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

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

Διορθώσεις σελ

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Πελάτες φθάνουν στο ταμείο μιας τράπεζας Eνα μόνο ταμείο είναι ανοικτό Κάθε πελάτης παρουσιάζεται με ένα νούμερο - αριθμός προτεραιότητας Όσο ο

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

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

Αντισταθμιστική ανάλυση

Ενότητα 3: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

Επιλέξτε Σωστό ή Λάθος για καθένα από τα παρακάτω:

επιµέλεια Θοδωρής Πιερράτος

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

Transcript:

ΚΕΦΑΛΑΙΟ 8: Αφαίρεση δεδοµένων 8.1 Βασικές έννοιες δοµών δεδοµένων 8.2 Σχετικές έννοιες 8.3 Υλοποίηση δοµών δεδοµένων 8.4 Μια σύντοµη µελέτη περίπτωσης 8.5 Προσαρµοσµένοι τύποι δεδοµένων 1

Βασικές δοµές δεδοµένων Οµοιογενής πίνακας. Λίστα. Στοίβα. Ουρά. Δέντρο. 2

Ορολογία λιστών Η λίστα είναι µία συλλογή δεδοµένων της οποίας οι καταχωρήσεις έχουν σειριακή διάταξη. Το ένα άκρο µίας λίστας ονοµάζεται αρχή (head) της λίστας, ενώ το άλλο άκρο τέλος (tail). Λίστα: a1, a2, a3,..., a89, nil τέλος λίστας 3

Ορολογία στοιβών Στοίβα είναι µία λίστα της οποίας οι καταχωρήσεις αφαιρούνται και εισάγονται µόνο από την αρχή. Δοµή LIFO (Last In, First Out). H αρχή µίας στοίβας ονοµάζεται κορυφή (top) της στοίβας, ενώ το τέλος ονοµάζεται βάση (base). Απώθηση (pop) ονοµάζεται η αφαίρεση µίας καταχώρησης από την κορυφή. Ώθηση (push) είναι η εισαγωγή µίας νέας καταχώρησης στην κορυφή. a1 a2 a3 Στοίβα 4

Ορολογία ουρών Η ουρά είναι µία λίστα στην οποία οι καταχωρίσεις αφαιρούνται από την αρχή ενώ οι νέες καταχωρίσεις προστίθενται στο τέλος. Δοµή FIFO (First In, First Out). Ουρά: Είσοδος a1 a2 a3 Έξοδος 5

Ορολογία δέντρων Ένα δέντρο είναι µία οµάδα δεδοµένων της οποίας οι καταχωρίσεις έχουν µία ιεραρχική οργάνωση. Κόµβος (node) είναι η κάθε θέση σε ένα δέντρο. Δυαδικό δένδρο (binary tree) είναι ένα δένδρο στο οποίο κάθε κόµβος έχει µέχρι δύο θυγατρικούς κόµβους. Ως βάθος ορίζουµε το πλήθος των κόµβων που βρίσκονται στη µεγαλύτερη διαδροµή από τη ρίζα µέχρι ένα φύλλο. 6

Ορολογία δένδρων: κόµβοι Κόµβος ρίζα είναι ο κόµβος στην κορυφή. Τερµατικός κόµβος ή φύλλο είναι ο κόµβος που βρίσκεται στο κάτω µέρος. Γονικός κόµβος (γονέας) ονοµάζεται ο αµέσως επάνω κόµβος ενός συγκεκριµένου κόµβου. Θυγατρικός κόµβος (παιδί) είναι ο αµέσως από κάτω κόµβος ενός συγκεκριµένου κόµβου. Πρόγονος είναι ο γονέας, ο γονέας του γονέα κτλ. Απόγονος είναι το παιδί, το παιδί του παιδιού κτλ. Αµφιθαλείς (ή κόµβοι αδέρφια) είναι δύο κόµβοι µε τους ίδιους γονείς. 7

Παράδειγµα οργανογράµµατος 8

Ορολογία δέντρων 9

Η φύση των δοµών δεδοµένων Στατική είναι η δοµή της οποίας το µέγεθος δεν αλλάζει. Δυναµική είναι η δοµή της οποίας το µέγεθος µπορεί να αλλάξει. 10

Αποθήκευση λιστών Συνεχόµενη λίστα είναι η λίστα που αποθηκεύεται σε έναν οµοιογενή πίνακα. Συνδεδεµένη λίστα είναι η λίστα στην οποία κάθε κόµβος δείχνει στον επόµενο του. Δείκτης αρχής είναι ο δείκτης που δείχνει στη αρχή, ή την κεφαλή, της λίστας. Δείκτης ΝΙL είναι ένα ειδικό σχήµα bit που τοποθετείται στο κελί δείκτη της τελευταίας καταχώρισης για να προσδιορίσει ότι δεν υπάρχουν άλλες καταχωρίσεις στη λίστα. 11

Αποθήκευση του πίνακα ενδείξεων θερµοκρασίας στη µνήµη µε αρχή τη διεύθυνση χ int Readings[24]; 12

Ένας δισδιάστατος πίνακας µε τέσσερις γραµµές και πέντε στήλες, αποθηκευµένες µε διάταξη γραµµές int Sales[4,5] 13

Αποθήκευση ετερογενούς πίνακα 14

Ονόµατα αποθηκευµένα στη µνήµη µε τη µορφή συνεχόµενης λίστας 15

Η δοµή µιας συνδεδεµένης λίστας 16

Διαγραφή καταχώρισης από συνδεδεµένη λίστα 17

Προσθήκη καταχώρισης σε συνδεδεµένη λίστα 18

Μια διαδικασία για την εκτύπωση µιας συνδεδεµένης λίστας διαδικασία PrintList(Λίστα) ΤρέχωνΔείκτης ß δείκτης κεφαλής της Λίστας όσο (ΤρέχωνΔείκτης διάφορος του NIL) κάνε (Τύπωσε το όνοµα της καταχώρισης στην οποία δείχνει ο ΤρέχωνΔείκτης. Βρες την τιµή στο κελί δείκτη της καταχώρισης της Λίστας όπου δείχνει ο ΤρέχωνΔείκτης και ανάθεσε εκ νέου τον ΤρέχονταΔείκτη την τιµή αυτή.) 19

Αποθήκευση στοιβών και ουρών Μπορεί να χρησιµοποιήσει παρόµοιους µηχανισµούς µε την αποθήκευση λιστών. Η κυκλική ουρά είναι ένας οµογενής πίνακας όπου η πρώτη καταχώριση στον πίνακα συµπεριφέρεται σαν να είναι η αµέσως επόµενη της τελευταίας καταχώρισης. Προστατεύει την ουρά από το να γλιστράει εκτός του τµήµατος µνήµης που έχει δεσµευτεί για αυτή. 20

Μία στοίβα στη µνήµη 21

Μια υλοποίηση ουράς µε δείκτες αρχής και τέλους. Παρατηρήστε το πώς «γλιστράει» στη µνήµη η ουρά καθώς προστίθενται και αφαιρούνται καταχωρίσεις 22

Η δοµή ενός κόµβου σε ένα δυαδικό δέντρο 23

Η σχηµατική και η πραγµατική οργάνωση ενός δυαδικού δέντρου µε τη χρήση ενός συστήµατος αποθήκευσης συνδέσεων 24

Ένα δέντρο που έχει αποθηκευτεί χωρίς δείκτες 25

Η σχηµατική αναπαράσταση ενός αραιού, µη ισορροπηµένου δέντρου, και ο τρόπος που θα αποθηκευόταν χωρίς δείκτες 26

Case study: δηµιουργία µιας αφηρηµένης δοµής Ορισµός δοµής Δεδοµένα: ονόµατα Μέθοδοι χειρισµού δεδοµένων: αναζήτηση, εκτύπωση, εισαγωγή νέας καταχώρησης Υλοποίηση δοµής Υλοποίηση στην µνήµη Αλγόριθµοι 27

Τα γράµµατα Α έως Ν µε τη µορφή διατεταγµένου δέντρου 28

Η δυαδική αναζήτηση µε τη µορφή που θα είχε αν η λίστα είχε υλοποιηθεί ως συνδεδεµένο δυαδικό κέντρο διαδικασία Αναζήτηση (Δέντρο, ΤιµήΣτόχος) αν (δείκτης ρίζας Δέντρου = NIL) τότε (δήλωσε την αναζήτηση ως ανεπιτυχή) αλλιώς (εκτέλεσε το τµήµα των παρακάτω εντολών που σχετίζεται µε την κατάλληλη περίπτωση) περίπτωση 1: ΤιµήΣτόχος=τιµή κόµβου ρίζας (Ανάφερε ότι η αναζήτηση πέτυχε) περίπτωση 2: ΤιµήΣτόχος<τιµή κόµβου ρίζας (Εφάρµοσε τη διαδικασία Αναζήτησης για να δεις αν η ΤιµήΣτόχος βρίσκεται στο υποδέντρο που προσδιορίζεται από τον αριστερό θυγατρικό κόµβο της ρίζας, και ανάφερε το αποτέλεσµα αυτής της αναζήτησης) περίτπωση 3: ΤιµηΣτόχος> τιµή κόµβου ρίζας (Εφάρµοσε τη διαδικασία Αναζήτησης για να δεις αν η ΤιµήΣτόχος βρίσκεται στο υποδέντρο που προσδιορίζεται από τον δεξιό θυγατρικό κόµβο της ρίζας, και ανάφερε το αποτέλεσµα αυτής της αναζήτησης) ) τέλος αν 29

Τα προοδευτικά µικρότερα δέντρα που θα ερευνήσει η διαδικασία «Αναζήτηση» κατά την αναζήτηση του γράµµατος Κ 30

Εκτύπωση ενός δέντρου αναζήτησης σε αλφαβητική σειρά 31

Μια διαδικασία για την εκτύπωση των δεδοµένων ενός δυαδικού δέντρου διαδικασία Εκτύπωση_Δέντρου (Δέντρο) αν (Δέντρο όχι άδειο) τότε (Εφάρµοσε τη διαδικασία Εκτύπωση_Δέντρου στο δέντρο που εµφανίζεται ως αριστερός κλάδος του Δέντρου Τύπωσε το ριζικό κόµβο του Δέντρου. Εφάρµοσε τη διαδικασία Εκτύπωση_Δέντρου στο δέντρο που εµφανίζεται ως δεξιός κλάδος του Δέντρου) 32

Εισαγωγή της καταχώρισης Ν στη λίστα Β,Ε,Η,Θ,Κ,Λ,Ο,Ρ που έχει αποθηκευτεί ως δέντρο + Ν à 33

Μια διαδικασία για την εισαγωγή µιας νέας καταχώρισης σε µία λίστα που είναι αποθηκευµένη ως δυαδικό δέντρο διαδικασία Εισαγωγή (Δέντρο, ΝέαΤιµή) αν (δείκτης ρίζα Δέντρου = NIL) (όρισε το δείκτη ρίζας ώστε να δείχνει σε ένα νέο φύλλο που περιέχει τη ΝέαΤιµή) αλλιώς (εκτέλεσε το τµήµα των εντολών παρακάτω που σχετίζεται µε την κατάλληλη περίπτωση) περίπτωση 1: ΝέαΤιµή = τιµή ριζικού κόµβου (Μην κάνεις τίποτα) περίπτωση 2: ΝέαΤιµή < τιµή ριζικού κόµβου (αν (αριστερός θυγατρικός δείκτης του ριζικού κόµβου = NIL) τότε (όρισε το δείκτη αυτόν ώστε να δείχνει σε ένα νέο κόµβο φύλλο που περιέχει τη ΝέαΤιµή) αλλιώς (εφάρµοσε τη διαδικασία Εισαγωγή για την εισαγωγή της ΝέαςΤιµής στο υποδέντρο που προσδιορίζεται από τον αριστερό θυγατρικό δείκτη) περίπτωση 3:ΝέαΤιµή < τιµή ριζικού κόµβου (αν (δεξιός θυγατρικός δείκτης του ριζικού κόµβου = NIL) τότε (όρισε το δείκτη αυτόν ώστε να δείχνει σε ένα νέο κόµβο φύλλο που περιέχει τη ΝέαΤιµή) αλλιώς (εφάρµοσε τη διαδικασία Εισαγωγή για την εισαγωγή της ΝέαςΤιµής στο υποδέντρο που προσδιορίζεται από τον δεξιό θυγατρικό δείκτη) ) ) τέλος αν 34

Προσαρµοσµένοι τύποι δεδοµένων Τύποι δεδοµένων οριζόµενοι από τον χρήστη όρισε τύπο ΤύποςΥπαλλήλου ως { char Όνοµα[25]. int Ηλικία. real ΒαθµόςΙκανότητας. } int x; ΤύποςΥπαλλήλου Υπάλληλος1; Υπάλληλος1.Ηλικία 26; Instance of type Αφηρηµένοι τύποι δεδοµένων ΤύποςΣτοίβας ΣτοίβαΈνα, Στοίβα ύο, ΣτοίβαΤρία; όρισε τύπο ΤύποςΣτοίβας ως { int ΚαταχωρίσειςΣτοίβας[20]. ΣτοίβαΈνα.push(25); int είκτηςστοίβας=0. διαδικασία push(τιµή) { ΚαταχωρίσειςΣτοίβας[ είκτηςστοίβας] τιµή. είκτηςστοίβας είκτηςστοίβας + 1. } διαδικασία pop... } 35