Σχετικά έγγραφα

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματιστική Εργασία Μέρος Β. Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 1 ο Μέρος

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

Θεωρητικό Μέρος. int rec(int n) { int n1, n2; if (n <= 5) then return n; else { n1 = rec(n-5); n2 = rec(n-3); return (n1+n2); } }

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

Προγραµµατιστική Εργασία 1 ο Μέρος

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

HY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος

Προγραµµατιστική Εργασία - 2 ο Μέρος

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

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

HY-486 Αρχές Κατανεμημένου Υπολογισμού

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

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

Santa Claus Παρουσίαση Α Μέρους Προγραμματιστικής Εργασίας

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

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

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

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

My Instagram Παρουσίαση Α Μέρους Προγραμματιστικής Εργασίας

Προγραµµατιστική Εργασία 2 ο Μέρος

Πληροφορική 2. Δομές δεδομένων και αρχείων

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

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

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

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

Προγραµµατιστική Εργασία 1 ο Μέρος

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

Δομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες

Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου

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

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

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

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

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

Αλγόριθμοι Ταξινόμησης Μέρος 1

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

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

Ενότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις

ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ

Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα

ΕΛΠ 11 - ΟΙ ΚΑΤΑΚΤΗΣΕΙΣ ΤΟΥ Μ. ΑΛΕΞΑΝΔΡΟΥ onlearn.gr - ελπ - εαπ. Το κράτος που ανέλαβε ο Αλέξανδρος ( 336 πΧ) ήταν στρατιωτικά έτοιμο να εισβάλει στην Περσία Ο Αλέξανδρος συνέχισε

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

ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία

Φροντιστήριο 4 Σκελετοί Λύσεων

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

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

I. ΑΛΓΟΡΙΘΜΟΣ II. ΠΡΑΞΕΙΣ - ΣΥΝΑΡΤΗΣΕΙΣ III. ΕΠΑΝΑΛΗΨΕΙΣ. 1. Τα πιο συνηθισμένα σενάρια παραβίασης αλγοριθμικών κριτηρίων είναι:

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

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

#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

Slide 6 / 43. Slide 5 / 43. Α. Σαββίδης. Α. Σαββίδης. Slide 8 / 43. Slide 7 / 43. Α. Σαββίδης. Α. Σαββίδης HY340, 2009 HY340, 2009 HY340, 2009

διεύθυνση πρώτου στοιχείου διεύθυνση i-οστού στοιχείου T t[n]; &t[0] είναι t &t[i] είναι t + i*sizeof(t)

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

Ο ΑΤΔ Λεξικό. Σύνολο στοιχείων με βασικές πράξεις: Δημιουργία Εισαγωγή Διαγραφή Μέλος. Υλοποιήσεις

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

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

Υλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

2. ΟΠΣ Ιδιωτικές Επενδύσεις / Ενημέρωση του Πυρήνα

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)

Insert(K,I,S) Delete(K,S)

Γέφυρες σε Δίκτυα. Μας δίνεται ένα δίκτυο (κατευθυνόμενο γράφημα) αφετηριακός κόμβος. Γέφυρα του (με αφετηρία τον ) :

Ο πίνακας συμβόλων (symbol table) είναι μία δομή, όπου αποθηκεύεται πληροφορία σχετικά με τα σύμβολα του προγράμματος

ΘΕΜΑ 1: Αλγόριθμος Ford-Fulkerson

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

lab13grades Άσκηση 2 -Σωστά απελευθερώνετε ολόκληρη τη λίστα και την κεφαλή

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

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

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

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

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

Δυναμικά Πολυεπίπεδα Ευρετήρια (Β-δένδρα) Μ.Χατζόπουλος 1

Δομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

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

Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες

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

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

Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις

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

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

Πληροφορική & Τηλεπικοινωνίες K25 Ανάπτυξη Λογισμικού Εαρινό Εξάμηνο 2008 Καθηγητής Γιάννης Ιωαννίδης. Μέρος 2ο: Επίπεδο Ευρετηρίου Β+ Δένδρων

Ταξινόμηση με συγχώνευση Merge Sort

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

Διάλεξη 11: Φροντιστήριο για Στοίβες. Διδάσκων: Παναγιώτης Ανδρέου. ΕΠΛ035 Δομές Δεδομένων και Αλγόριθμοι για Ηλ. Μηχ. Και Μηχ. Υπολ.

Αλγόριθμοι Ταξινόμησης Μέρος 2

Εργαστήριο 5: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Διπλά Συνδεδεμένη Λίστα

Transcript:

Project HY240a - 1η Φάση Διδάσκουσα: Παναγιώτα Φατούρου Βοηθός: Νικόλαος Μπατσαράς Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Ηράκλειο, 24 Οκτωβρίου 2018

Διαδικαστικά Θεματολογία Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

Διαδικαστικά Θεματολογία Διαδικαστικά Θεματολογία Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

Διαδικαστικά Θεματολογία Πληροφορίες Σελίδα Μαθήματος: https://csd.uoc.gr/~hy240a Τρόπος Παράδοσης: Με το πρόγραμμα turnin Περισσότερες Πληροφορίες: https://csd.uoc.gr/~hy240a/current/submit.php Παράδοση: Δευτέρα, 19 Νοεμβρίου 2018, ώρα 23:59 Διαθέσιμες Υλοποιήσεις: C ή Java Ερωτήσεις-Απορίες: hy240a-list@csd.uoc.gr Προσοχή: Compile/Run στα μηχανήματα της σχολής.

Διαδικαστικά Θεματολογία Διαδικαστικά Θεματολογία Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

Διαδικαστικά Θεματολογία Θέμα Η προσομοίωση της μάχης των Γαυγαμήλων, η οποία υπήρξε η τελευταία, μεγαλύτερη και πιο αποφασιστική μάχη που έδωσε ο στρατός του Μεγάλου Αλεξάνδρου έναντι του Δαρείου Γ Κοδομανού. Στρατιώτες διαφόρων τύπων (π.χ. ιππείς, λογχοφόρους, οπλίτες, τοξότες) Κατάταξη στρατιωτών σε στρατούς Προετοιμασία για μάχη Μάχη

Διαδικαστικά Θεματολογία Θέμα Εχουμε λοιπόν 2 βασικές οντότητες: 1. Στρατός του Μεγάλου Αλεξάνδρου 2. Σατραπείες του Δαρείου

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Διαδικαστικά Θεματολογία Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Γνωστικό Αντικείμενο Οι γνώσεις που θα χρειαστούν για την υλοποίηση της 1ης φάσης της εργασίας, μεταξύ άλλων, είναι οι εξής: Λίστες, Διαγραφή, Αναζήτηση, Συγχώνευση, Διαίρεση Ταξινομημένες λίστες Κόμβοι φρουροί

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Ιδέα Η εργασία αποτελείται από 2 ομάδες δομών: 1. Δομές που αφορούν το στρατό του Μεγάλου Αλεξάνδρου 2. Δομές που αφορούν τις σατραπείες

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Διαδικαστικά Θεματολογία Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Οι δομές του Μεγάλου Αλεξάνδρου οργανώνονται ως εξής: Ο στρατός αποτελείται από: Στρατιώτες Άλογα Εχουμε ένα πίνακα 2 κελιών: Το 1ο κελί δεικτοδοτεί τη λίστα στρατιωτών Το 2ο κελί δεικτοδοτεί τη λίστα αλόγων Η λίστα στρατιωτών είναι απλά συνδεδεμένη, ταξινομημένη, σε αύξουσα διάταξη, ως προς το αναγνωριστικό του στρατιώτη Η λίστα αλόγων είναι απλά συνδεδεμένη, ταξινομημένη, σε αύξουσα διάταξη, ως προς το αναγνωριστικό του αλόγου

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Δομή Στρατιώτη/Αλόγου Η δομή struct Army περιγράφει ένα στρατιώτη/άλογο του Μεγάλου Αλεξάνδρου id Αναγνωριστικό του στρατιώτη/αλόγου (int) type Τύπος του στρατιώτη/αλόγου (int) 0 Άλογο 1 Ιππέας 2 Λογχοφόρος 3 Οπλίτης 4 Τοξότης general Αναγνωριστικό του στρατηγού/σατράπη του στρατιώτη/αλόγου (int) next Δείκτης στον επόμενο κόμβο της λίστας (struct Army *)

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Δομή Μάχης Κατά την προετοιμασία για τη μάχη, ο στρατός του Μεγάλου Αλεξάνδρου οργανώνεται ως εξής: Μία απλά συνδεδεμένη, μη ταξινομημένη λίστα Η παράταξη του στρατού του Μεγάλου Αλεξάνδρου είναι η εξής: 1. Ιππείς μαζί με τα άλογά τους 2. Λογχοφόροι 3. Οπλίτες 4. Τοξότες

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Δομή Μάχης Η δομή struct GA Battle περιγράφει έναν ετοιμοπόλεμο στρατιώτη και η λίστα μάχης περιγράφει την παράταξη των στρατιωτών για τη μάχη. soldier id Αναγνωριστικό του στρατιώτη (int) horse id Αναγνωριστικό του αλόγου εάν ο στρατιώτης είναι ιππέας, -1 διαφορετικά (int) general Αναγνωριστικό του στρατηγού του στρατιώτη (int) next Δείκτης στον επόμενο κόμβο της λίστας (struct GA Battle *)

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Διαδικαστικά Θεματολογία Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Οι δομές των σατραπειών οργανώνονται ως εξής: Οι σατραπείες αποθηκεύονται σε μία διπλά συνδεδεμένη, μη ταξινομημένη, κυκλική λίστα Κάθε κόμβος της λίστας σατραπειών, δεικτοδοτεί μία απλά συνδεδεμένη, μη ταξινομημένη λίστα, με κόμβο φρουρό. Στη λίστα αυτή αποθηκεύονται οι στρατιώτες της σατραπείας (τύπου struct Army).

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Δομή Σατραπείας Η δομή struct Satrapy περιγράφει μία σατραπεία. id Αναγνωριστικό της σατραπείας (int) s army Δείκτης στον 1ο κόμβο της λίστας στρατιωτών της σατραπείας (struct Army *) next Δείκτης στον επόμενο κόμβο της λίστας (struct Satrapy *) prev Δείκτης στον προηγούμενο κόμβο της λίστας (struct Satrapy *) sentinel Δείκτης στον κόμβο φρουρό της λίστας στρατιωτών της σατραπείας (struct Army *)

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Δομή Στρατιώτη Η δομή struct Army περιγράφει ένα στρατιώτη σατραπείας id Αναγνωριστικό του στρατιώτη (int) type Τύπος του στρατιώτη (int) 1 Ιππέας 2 Χειριστής ελεφάντων 3 Πεζός general Αναγνωριστικό του σατράπη του στρατιώτη (int) next Δείκτης στον επόμενο κόμβο της λίστας (struct Army *)

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

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

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών Δομή Μάχης Η δομή struct S Battle περιγράφει έναν ετοιμοπόλεμο στρατιώτη σατραπείας και η λίστα μάχης περιγράφει την παράταξη των στρατιωτών για τη μάχη. soldier id Αναγνωριστικό του στρατιώτη (int) satrapy id Αναγνωριστικό της σατραπείας του στρατιώτη (int) type Η ειδικότητα του στρατιώτη (int) next Δείκτης στον επόμενο κόμβο της λίστας (struct S Battle *)

Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

Διαδικαστικά Θεματολογία Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

Ιδέα Ενα γεγονός αποτελεί μία ενέργεια την οποία εκτελεί το σύστημά μας, π.χ. /κατάταξη ενός στρατιώτη Η προετοιμασία για τη μάχη κ.τ.λ.

Πηγή Τα γεγονότα αυτά είναι καταχωρημένα σε κάποια αρχεία Τα αρχεία υπάρχουν στη σελίδα του μαθήματος Το πρόγραμμα κάνει parse αυτά τα αρχεία και εκτελεί τις συνάρτηση που αντιστοιχεί στο εκάστοτε γεγονός Δεν χρειάζεται να γραφτεί επιπλέον κώδικας για το χειρισμό των γεγονότων Το μόνο που λείπει είναι η υλοποίηση των συναρτήσεων

Μορφή Ενα γεγονός έχει την εξής μορφή: event id [arithmetic arguments [...]]

Διαδικαστικά Θεματολογία Δομές Μεγάλου Αλεξάνδρου Δομές Σατραπειών

Register Alexander the Great Soldier ενός νέου στρατιώτη του Μεγάλου Αλεξάνδρου στο σύστημα. Εχει την εξής μορφή: Ορίσματα: R sid type general sid Αναγνωριστικό του νέου στρατιώτη type Ιδιότητα του νέου στρατιώτη general Αναγνωριστικό του στρατηγού του στρατιώτη

Register Alexander the Great Soldier Κατά το γεγονός αυτό: 1. Θα γίνει εισαγωγή ενός νέου στρατιώτη στη λίστα που δεικτοδοτείται από το 1ο κελί του πίνακα στρατού του Μ. Αλεξάνδρου 2. Προσοχή: Μετά από κάθε εισαγωγή, η λίστα στρατιωτών θα πρέπει να παραμένει ταξινομημένη

Register Alexander the Great Horse ενός νέου αλόγου του Μεγάλου Αλεξάνδρου στο σύστημα. Εχει την εξής μορφή: Ορίσματα: H hid type general hid Αναγνωριστικό του νέου αλόγου type Πάντα μηδέν general Αναγνωριστικό του στρατηγού του αλόγου

Register Alexander the Great Horse Κατά το γεγονός αυτό: 1. Θα γίνει εισαγωγή ενός νέου αλόγου στη λίστα που δεικτοδοτείται από το 2ο κελί του πίνακα στρατού του Μ. Αλεξάνδρου 2. Προσοχή: Μετά από κάθε εισαγωγή, η λίστα αλόγων θα πρέπει να παραμένει ταξινομημένη

Register Satrapy σατραπείας στο σύστημα. Εχει την εξής μορφή: S sid Ορίσματα: sid Αναγνωριστικό της νέας σατραπείας

Register Satrapy Κατά το γεγονός αυτό: 1. Θα γίνει εισαγωγή μίας νεάς σατραπείας στη λίστα σατραπειών 2. Προσοχή: Η εισαγωγή θα πρέπει να πραγματοποιηθεί με τη βέλτιστη δυνατή πολυπλοκότητα

Register Satrapy Soldier ενός στρατιώτη σατραπείας στο σύστημα. Εχει την εξής μορφή: Ορίσματα: A sid aid type general sid Αναγνωριστικό της σατραπείας του στρατιώτη aid Αναγνωριστικό του νέου στρατιώτη type Ιδιότητα του νέου στρατιώτη general Αναγνωριστικό του σατράπη του νέου στρατιώτη

Register Satrapy Soldier Κατά το γεγονός αυτό: 1. Θα αναζητήσετε τη σατραπεία με αναγνωριστικό sid στη λίστα σατραπειών 2. Επειτα, θα εισάγετε ένα νέο κόμβο με αναγνωριστικό aid στη λίστα στρατιωτών της σατραπείας 3. Προσοχή: Και πάλι, η εισαγωγή θα πρέπει να πραγματοποιηθεί με τη βέλτιστη δυνατή πολυπλοκότητα

Prepare Alexander the Great for Battle Προετοιμασία του στρατού του Μεγάλου Αλεξάνδρου για τη μάχη. Εχει την εξής μορφή: P

Prepare Alexander the Great for Battle Κατά το γεγονός αυτό: 1. Για κάθε κόμβο τις λίστας στρατιωτών, θα εισάγετε ένα νέο κόμβο στη λίστα μάχης του Μεγάλου Αλεξάνδρου 2. Το πεδίο soldier id θα κρατά το αναγνωριστικό του τρέχων στρατιώτη από τη λίστα μάχης 3. Το πεδίο horse id θα κρατά το αναγνωριστικό του 1ου διαθέσιμου αλόγου, εάν ο τρέχων στρατιώτης είναι ιππέας, -1 διαφορετικά 4. Το πεδίο general θα κρατά το αναγνωριστικό του στρατηγού του στρατιώτη

Prepare Satrapies for Battle Προετοιμασία των σατραπειών για τη μάχη. Εχει την εξής μορφή: B sid Ορίσματα: sid Αναγνωριστικό της κεντρικής σατραπείας

Prepare Satrapies for Battle Κατά το γεγονός αυτό: 1. Θα αναζητήσετε τη σατραπεία με αναγνωριστικό sid στη λίστα σατραπειών 2. Επειτα, για κάθε κόμβο της λίστας στρατιωτών της σατραπείας, θα εισάγετε ένα νέο κόμβο στη λίστα μάχης σατραπειών 3. Στη συνέχεια, διασχίζετε τη λίστα σατραπειών της προηγούμενης και της επόμενης σατραπείας, εναλλάξ, όπου για κάθε στρατιώτη σατραπείας, εισάγετε ένα νέο κόμβο στη λίστα μάχης σατραπειών με τον ίδιο τρόπο 4. Ο αλγόριθμος τερματίζει όταν διασχίσετε ολόκληρη τη λίστα σατραπειών

Prepare Satrapies for Battle Εστω γεγονός B 200

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Prepare Satrapies for Battle

Soldier s death Θάνατος στρατιώτη. Εχει την εξής μορφή: K sid flag Ορίσματα: sid Αναγνωριστικό του αποθανών στρατιώτη flag Η τιμή καθορίζει το που ανήκει ο στρατιώτης: 0 Ανήκει σε κάποια σατραπεία 1 Ανήκει στο στρατό του Μ. Αλεξάνδρου

Soldier s death Κατά το γεγονός αυτό: Εάν flag = 0: 1. Θα αναζητείτε τον στρατιώτη στη λίστα μάχης σατραπειών και έπειτα θα τον διαγράφετε από αυτή 2. Θα διαγράφετε το στρατιώτη και από τη λίστα στρατιωτών της σατραπείας στην οποία ανήκει Εάν flag = 1: 1. Θα αναζητείτε τον στρατιώτη στη λίστα μάχης του Μ. Αλεξάνδρου και έπειτα θα τον διαγράφετε από αυτή 2. Θα διαγράφετε το στρατιώτη και από τη λίστα στρατιωτών του Μ. Αλεξάνδρου

Alexander the Great Horsemen Victory Νίκη ιππέων Μ. Αλεξάνδρου. Εχει την εξής μορφή: V

Alexander the Great Horsemen Victory Κατά το γεγονός αυτό: 1. Θα διασχίσετε τη λίστα μάχης σατραπειών και θα διαγράφετε όλους τους κόμβους που έχουν στο πεδίο type την τιμή 1 2. Στη συνέχεια, θα διασχίσετε τη λίστα μάχης του Μ. Αλεξάνδρου και θα διαγράφετε κάθε 3ο κόμβο με τιμή διαφορετική του -1 στο πεδίο horse id

Death of Alexander the Great Ο θάνατος του Μεγάλου Αλεξάνδρου και ο διαμοιρασμός του στρατού στους 5 διαδόχους. Εχει την εξής μορφή: D

Death of Alexander the Great Κατά το γεγονός αυτό: 1. Θα διαμοιράσετε τη λίστα μάχης του Μεγάλου Αλεξάνδρου σε 5 μικρότερες λίστες με βάση το πεδίο general

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Death of Alexander the Great

Print All Alexander the Great Soldiers Εκτύπωση όλων των στρατιωτών και αλόγων του πίνακα στρατού του Μ. Αλεξάνδρου. Εχει την εξής μορφή: X

Print All Satrapy Soldiers Εκτύπωση όλων των στρατιωτών της λίστας σατραπειών. Εχει την εξής μορφή: Y

Thank You!