Προγραµµατιστική Εργασία 1 ο Μέρος
|
|
- Ἀριστόδημε Ζυγομαλάς
- 7 χρόνια πριν
- Προβολές:
Transcript
1 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος ιδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 1 ο Μέρος Ηµεροµηνία Παράδοσης: Παρασκευή, 29 Νοεµβρίου 2013, ώρα 23:59. Τρόπος Παράδοσης: Χρησιµοποιώντας το πρόγραµµα submit. Πληροφορίες για το πώς λειτουργεί το submit παρέχονται στην ιστοσελίδα του µαθήµατος. Copyright for photos by Martin Doerr Γενική Περιγραφή Στην εργασία αυτή καλείστε να υλοποιήσετε ένα πρόγραµµα που περιγράφει (προσοµοιώνει) τη λειτουργία µίας υπηρεσίας διαµοιρασµού φωτογραφιών παρόµοιας µε το Instagram. Κάθε χρήστης µπορεί να αναρτά τις φωτογραφίες που επιθυµεί ώστε να µπορούν άλλοι χρήστες να τις προβάλουν. Για τις ανάγκες αυτής της εργασίας θεωρούµε ότι η υπηρεσία υποστηρίζει πολλαπλούς λογαριασµούς. Κάθε λογαριασµός ανήκει σε κάποιο χρήστη. Ο ίδιος χρήστης µπορεί να κατέχει περισσότερους του ενός λογαριασµούς. Ο χρήστης ενός λογαριασµού έχει τη δυνατότητα: να αναρτά φωτογραφίες στο λογαριασµό. να δηλώνει πως του αρέσουν (like) φωτογραφίες δικές του ή άλλων χρηστών. να επισηµαίνει (tag) τον εαυτό του σε φωτογραφίες που τον απεικονίζουν ή να επισηµαίνει άλλους χρήστες σε δικές του φωτογραφίες. 1
2 να ενώνει δύο λογαριασµούς που του ανήκουν. Για παράδειγµα, ας υποθέσουµε ότι ένας χρήστης έχει δύο λογαριασµούς, έναν για οικογενειακές φωτογραφίες και έναν για επαγγελµατικές. Ο χρήστης έχει τη δυνατότητα να αποφασίσει ότι θέλει να έχει µόνο ένα λογαριασµό όπου θα συγκεντρώσει τις φωτογραφίες των δύο άλλων λογαριασµών του. να διαχωρίζει το σύνολο των φωτογραφιών που περιέχονται σε κάποιο λογαριασµό του σε δύο ή περισσότερα σύνολα κάθε ένα εκ των οποίων θα ανήκει σε διαφορετικούς λογαριασµούς αυτού του χρήστη. Για παράδειγµα, κάποιος χρήστης µπορεί να επιθυµεί όλες οι φωτογραφίες που έχει τραβήξει στην Ήπειρο να τοποθετηθούν σε ένα νέο λογαριασµό. Αναλυτική Περιγραφή Ζητούµενης Υλοποίησης Για την υλοποίηση της παραπάνω υπηρεσίας θα χρειαστείτε τις ακόλουθες κεντρικές δοµές δεδοµένων: 1. Μία µη-ταξινοµηµένη απλά-συνδεδεµένη λίστα µε κόµβο φρουρό που περιέχει τόσα στοιχεία όσοι και οι λογαριασµοί της υπηρεσίας, έναν για κάθε λογαριασµό. Αυτή η λίστα ονοµάζεται λίστα λογαριασµών (alist_p ) και παρουσιάζεται στο Σχήµα 1. G node 1 node 2 node 3 node k κόµβος φρουρός Σχήµα 1 2. Μία ταξινοµηµένη, βάσει του πεδίου, διπλά συνδεδεµένη λίστα µε όλες τις φωτογραφίες που έχουν ανεβάσει όλοι οι χρήστες της υπηρεσίας. Αυτή η λίστα ονοµάζεται λίστα φωτογραφιών (plist_p) και παρουσιάζεται στο Σχήµα 2. node 1 node 2 node 3 node m Σχήµα 2 Για την υλοποίηση των δοµών αυτών χρειάζονται οι ακόλουθοι τύποι εγγραφών (structs): 1. Κάθε στοιχείο της λίστας λογαριασµών είναι µια εγγραφή (ένα struct) τύπου account_t µε τα ακόλουθα πεδία: aid: Αναγνωριστικό του λογαριασµού. Ένας µοναδικός αριθµός που αντιστοιχεί στο λογαριασµό. myphotos: είκτης (τύπου myphoto_t *) στο πρώτο στοιχείο µιας ταξινοµηµένης (ως προς το πεδίο ) λίστας, κάθε στοιχείο της οποίας αντιστοιχεί σε µια φωτογραφία που ανήκει στο λογαριασµό. Η λίστα αυτή ονοµάζεται λίστα προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό aid. Κάθε στοιχείο της λίστας προσωπικών φωτογραφιών ενός λογαριασµού είναι µία εγγραφή (ένα struct) τύπου myphoto_t µε τα ακόλουθα πεδία: o o : Το αναγνωριστικό της φωτογραφίας. next: είκτης (τύπου myphoto_t *) στον επόµενο κόµβο της λίστας προσωπικών φωτογραφιών του λογαριασµού. next: είκτης (τύπου account_t *) στον επόµενο κόµβο της λίστας λογαριασµών. Μια εγγραφή τύπου account_t παρουσιάζεται στο Σχήµα 3. 2
3 2. Κάθε στοιχείο της λίστας φωτογραφιών είναι µια εγγραφή (ένα struct) τύπου photo_t µε τα ακόλουθα πεδία: aid myphotos Next Μία εγγραφή της λίστας προσωπικών φωτογραφιών του λογαριασµού aid Σχήµα 3: Εγγραφή τύπου account_t. : Αναγνωριστικό της φωτογραφίας. Είναι ένας µοναδικός αριθµός που αντιστοιχεί σε κάθε φωτογραφία. aid: Αναγνωριστικό του λογαριασµού στον οποίο ανήκει η φωτογραφία. location: Αναγνωριστικό της τοποθεσίας όπου τραβήχτηκε η φωτογραφία. date: Ένας αριθµός που αντιστοιχεί στην ηµεροµηνία στην οποία δηµιουργήθηκε η φωτογραφία. Η ηµεροµηνία πρέπει να είναι της µορφής YYYYMMDD. Για παράδειγµα, η 28 η Οκτωβρίου 2013 αναπαρίσταται ως ενώ η 5 η Ιανουαρίου 2011 αναπαρίσταται ως Αυτή η αναπαράσταση µας επιτρέπει να συγκρίνουµε εύκολα ηµεροµηνίες για να δούµε πια προηγείται χρονικά. Για παράδειγµα το είναι µεγαλύτερο του , άρα η 28 η Οκτωβρίου 2013 έπεται της 5 ης Ιανουαρίου tags: Πίνακας 5 θέσεων που ονοµάζεται πίνακας επισηµάνσεων. Κάθε θέση του πίνακα περιέχει ένα δείκτη (τύπου account_t *) σε έναν κόµβο της λίστας λογαριασµών. Ο λογαριασµός αυτός αντιστοιχεί σε χρήστη που έχει επισηµανθεί (γίνει tag) σε αυτή τη φωτογραφία. likes: είκτης στο πρώτο στοιχείο µιας λίστας, που ονοµάζεται λίστα οπαδών της φωτογραφίας µε αναγνωριστικό. Κάθε στοιχείο αυτής της λίστας είναι µία εγγραφή (ένα struct) τύπου like_t µε τα ακόλουθα πεδία: Pid o o aptr: είκτης προς µια εγγραφή της λίστας λογαριασµών που αντιστοιχεί σε λογαριασµό που έχει δηλώσει πως του αρέσει η φωτογραφία (έχει κάνει like στην φωτογραφία). next: είκτης (τύπου like_t *) στον επόµενο κόµβο της λίστα οπαδών της φωτογραφίας. next: είκτης (τύπου photo_t *) στον επόµενο κόµβο της λίστας φωτογραφιών. prev: είκτης (τύπου photo_t *) στον προηγούµενο κόµβο της λίστας φωτογραφιών. Μια εγγραφή τύπου photo_t παρουσιάζεται στο Σχήµα 4. tags aid location date likes next prev aptr 1 aptr 2 aptr 3 aptr 4 είκτες προς εγγραφές της λίστας λογαριασµών 3
4 Σχήµα 4: Εγγραφή τύπου photo_t. Το Σχήµα 5 παρουσιάζει τις δοµές της προγραµµατιστικής εργασίας µε συγκεντρωτικό τρόπο όπου, για λόγους απλότητας, στις εγγραφές (structs) τύπου photo_t δεν εµφανίζονται τα στατικά πεδία (εµφανίζονται µόνο τα πεδία που αποθηκεύουν δείκτες). Συγκεκριµένα, τα πεδία κάθε κόµβου της λίστας φωτογραφιών που εµφανίζονται στο Σχήµα 5 είναι τα εξής: tags, likes, prev και next µε αυτή τη σειρά. myphotos tags aid likes tags aid tags myphotos aid likes tags aid... tags... myphotos aid likes tags aid λίστα φωτογραφιών G λίστα λογαριασµών είκτης NULL Σχήµα 5: οµές δεδοµένων πρώτης φάσης προγραµµατιστικής εργασίας. 4
5 Τρόπος Λειτουργίας Προγράµµατος Το πρόγραµµα που θα δηµιουργηθεί θα πρέπει να εκτελείται καλώντας την ακόλουθη εντολή: <executable> <input-file> όπου <executable> είναι το όνοµα του εκτελέσιµου αρχείου του προγράµµατος (π.χ. a.out) και <input-file> είναι το όνοµα ενός αρχείου εισόδου (π.χ. testfile) που περιέχει γεγονότα των ακόλουθων µορφών: R <aid>: Γεγονός τύπου Register το οποίο σηµατοδοτεί τη δηµιουργία ενός νέου λογαριασµού (account_t) στο σύστηµα µε αναγνωριστικό <aid> και κενή λίστα προσωπικών φωτογραφιών (myphotos). Το γεγονός αυτό πρέπει να δηµιουργεί το νέο λογαριασµό και να τον προσθέτει στη λίστα λογαριασµών. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: R <aid> DONE D <aid>: Γεγονός τύπου Delete account το οποίο σηµατοδοτεί τη διαγραφή του λογαριασµού µε αναγνωριστικό <aid>. Κατά τη διαγραφή ενός λογαριασµού πρέπει να διαγράφονται και όλες οι φωτογραφίες που ανήκουν στο λογαριασµό (δηλαδή όλα τα στοιχεία της λίστας προσωπικών φωτογραφιών του λογαριασµού, καθώς και οι αντίστοιχες φωτογραφίες από τη λίστα φωτογραφιών). Επίσης, θα πρέπει να διαγραφούν όλες οι πιθανές αναφορές σε αυτόν το λογαριασµό µέσω επισηµάνσεων (tags) ή/και likes. Συγκεκριµένα, θα πρέπει να εξεταστούν όλα τα στοιχεία της λίστας φωτογραφιών και να γίνονται κατάλληλες αλλαγές στον πίνακα επισηµάνσεων κάθε τέτοιου στοιχείου όποτε χρειάζεται, καθώς και να εξεταστεί η λίστα οπαδών της φωτογραφίας που αντιστοιχεί στο στοιχείο: αν κάποιο στοιχείο της λίστας οπαδών της φωτογραφίας αυτής δείχνει στο λογαριασµό µε αναγνωριστικό <aid>, το στοιχείο αυτό θα πρέπει επίσης να διαγραφεί. Για λόγους ευκολότερης αποσφαλµάτωσης του κώδικα που θα δηµιουργηθεί, συνίσταται ισχυρά κατά την διαγραφή να αναθέτετε την τιµή NULL στο πεδίο aptr του προς διαγραφή στοιχείου. Τέλος θα πρέπει να αφαιρείται ο κόµβος που κρατάει τα στοιχεία για αυτόν το λογαριασµό από την λίστα λογαριασµών. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: D <aid> MYPHOTOS = < 1, 2,... n > TAGS = <t 1, t 2,... t k > LIKES = <l 1, l 2,... l m > DONE όπου n είναι το πλήθος των φωτογραφιών που ανήκουν στον λογαριασµό µε αναγνωριστικό <aid>, k είναι το πλήθος των φωτογραφιών στις οποίες ο λογαριασµός είχε επισηµανθεί (είχε γίνει tag), m είναι το πλήθος των φωτογραφιών των οποίων ο προς διαγραφή λογαριασµός είναι οπαδός και: για κάθε j, 1 j n, < j > είναι τo αναγνωριστικό της j-οστής φωτογραφίας που ανήκει στον προς διαγραφή λογαριασµό. για κάθε j, 1 j k, <t j > είναι τo αναγνωριστικό της j-οστής φωτογραφίας που περιείχε επισήµανση (tag) προς τον προς διαγραφή λογαριασµό. Σηµειώνεται ότι από τις εγγραφές στη λίστα φωτογραφιών που αντιστοιχούσαν στις φωτογραφίες αυτές αφαιρέθηκαν οι εν λόγω επισηµάνσεις (tags). 5
6 για κάθε j, 1 j m, <l j > είναι το αναγνωριστικό της j-οστής φωτογραφίας που είχε οπαδό τον προς διαγραφή λογαριασµό. Σηµειώνεται ότι από τις εγγραφές στη λίστα φωτογραφιών που αντιστοιχούσαν στις φωτογραφίες αυτές αφαιρέθηκαν τα εν λόγω likes. U <> <aid> <location> <date>: Γεγονός τύπου Upload photo το οποίο σηµατοδοτεί την ανάρτηση (upload) µίας νέας φωτογραφίας στο σύστηµα. Η νέα αυτή φωτογραφία θα έχει αναγνωριστικό <>. Το αναγνωριστικό του λογαριασµού που έκανε την ανάρτηση θα είναι <aid>, η τοποθεσία <location>, η ηµεροµηνία λήψης <date>, η λίστα οπαδών της φωτογραφίας (likes) θα είναι κενή και ο πίνακας επισηµάνσεων άδειος. Η νέα φωτογραφία πρέπει να τοποθετηθεί στη σωστή θέση της λίστας φωτογραφιών. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: U <> <aid> <location> <date> DONE PREDG = <G>, SUCCG = <sidg>, PREDL = <L>, SUCCL = <sidl> όπου: <G> και <sidg> είναι τα αναγνωριστικά της προηγούµενης και της επόµενης φωτογραφίας, αντίστοιχα, της προς εισαγωγή φωτογραφίας στη λίστα φωτογραφιών. <L> και <sidl> είναι τα αναγνωριστικά της προηγούµενης και της επόµενης φωτογραφίας, αντίστοιχα, της προς εισαγωγή φωτογραφίας στη λίστα προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid>. B <>: Γεγονός τύπου Burn photo το οποίο σηµατοδοτεί την αφαίρεση της φωτογραφίας µε αναγνωριστικό <> από το σύστηµα. Κατά την αφαίρεση µίας φωτογραφίας από το σύστηµα πρέπει να διαγράφονται και όλες οι πληροφορίες σχετικά µε αυτήν και εποµένως και όλα τα στοιχεία της λίστας οπαδών της φωτογραφίας αυτής. Ακόµη θα πρέπει να διαγράφεται ο αντίστοιχος κόµβος από την λίστα προσωπικών φωτογραφιών του λογαριασµού που ανέβασε την προς-διαγραφή φωτογραφία. Επίσης, για ευκολότερη αποσφαλµάτωση του κώδικα που θα δηµιουργήσετε συνίσταται ισχυρά να αναθέτετε την τιµή NULL σε κάθε στοιχείο του πίνακα επισηµάνσεων της εγγραφής που αντιστοιχεί στην προςδιαγραφή φωτογραφία. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: B <> <aid> LIKES = <aid 1, aid 2,... aid n > DONE PREDG = <G>, SUCCG = <sidg> PREDL = <L> SUCCL = <sidl> όπου n είναι το µέγεθος της λίστας οπαδών της φωτογραφίας µε αναγνωριστικό <>: <aid> είναι το αναγνωριστικό του λογαριασµού στον οποίο ανήκει η προς διαγραφή φωτογραφία, για κάθε j, 1 j n, <aid j > είναι τo αναγνωριστικό του λογαριασµού στον οποίο δείχνει το j- οστό στοιχείο της λίστας οπαδών της προς διαγραφή φωτογραφίας. <G> και <sidg> είναι τα αναγνωριστικά της προηγούµενης και της επόµενης φωτογραφίας, αντίστοιχα, της προς διαγραφή φωτογραφίας στη λίστα των φωτογραφιών. 6
7 <L> και <sidl> είναι τα αναγνωριστικά της προηγούµενης και της επόµενης φωτογραφίας, αντίστοιχα, της προς διαγραφή φωτογραφίας στη λίστα προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid>. L <aid> <>: Γεγονός τύπου Like photo το οποίο σηµατοδοτεί την προσθήκη ενός κόµβου στη λίστα οπαδών της φωτογραφίας µε αναγνωριστικό <>. Ο κόµβος αυτός θα αποθηκεύει έναν δείκτη προς το στοιχείο µε αναγνωριστικό <aid> της λίστας λογαριασµών. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: L <aid> <> DONE T <aid> <>: Γεγονός τύπου Tag το οποίο σηµατοδοτεί την προσθήκη ενός δείκτη στον λογαριασµό µε αναγνωριστικό <aid> στον πίνακα επισηµάνσεων της φωτογραφίας µε αναγνωριστικό <>. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: T <aid> <> DONE M <aid1> <aid2> <aid3>: Γεγονός τύπου Merge accounts το οποίο σηµατοδοτεί τη συνένωση των λογαριασµών µε αναγνωριστικά <aid1> και <aid2> σε ένα νέο λογαριασµό µε αναγνωριστικό <aid3>. Κατά τη συνένωση θα πρέπει: να συνενωθούν οι δύο λίστες προσωπικών φωτογραφιών σε µία νέα ταξινοµηµένη λίστα η οποία θα αποτελέσει την λίστα προσωπικών φωτογραφιών για το νέο λογαριασµό. Αυτό θα πρέπει να επιτευχθεί σε χρόνο Ο(n1+n2), όπου n1 και n2 είναι το πλήθος των στοιχείων στις λίστες προσωπικών φωτογραφιών των λογαριασµών <aid1> και <aid2>, αντίστοιχα, να αντικατασταθούν οποιεσδήποτε αναφορές προς τους λογαριασµούς µε αναγνωριστικά <aid1> και <aid2> µε αναφορές στον λογαριασµό µε αναγνωριστικό <aid3>. Αναφορές µπορεί να υπάρχουν στις λίστες οπαδών και στους πίνακες επισηµάνσεων των διαφόρων φωτογραφιών. Στην περίπτωση όπου και οι δύο λογαριασµοί έχουν επισηµανθεί ή/και έχουν δηλώσει την αρέσκεια τους (like) για µία φωτογραφία, καλό θα ήταν να αντικαθίσταται η πρώτη αναφορά µε µία αναφορά στον λογαριασµό µε αναγνωριστικό <aid3> και η δεύτερη να διαγράφεται. Όποτε αν µία φωτογραφία είχε δύο like από του λογαριασµούς µε αναγνωριστικά <aid1> και <aid2>, µετά το πέρας της εκτέλεσης του γεγονότος θα πρέπει να έχει ένα like από τον λογαριασµό µε αναγνωριστικό <aid3>. να διαγραφούν οι λογαριασµοί µε αναγνωριστικά <aid1> και <aid2> από την λίστα λογαριασµών. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: Μ <aid1> <aid2> <aid3> MYPHOTOS1 = <m1 1, m1 2,, m1 m > MYPHOTOS2 = <m2 1, m2 2,, m2 n > MYPHOTOS3 = <m3 1, m3 2,, m3 k > UPDATED = <u 1, u 2, u r > DONE όπου: m είναι το µέγεθος της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό 7
8 <aid1>, n είναι το µέγεθος της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid2>, k είναι το µέγεθος της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid3> και r είναι το πλήθος των φωτογραφιών για τις οποίες ισχύει πως κάποιο στοιχείο του πίνακα επισηµάνσεων τους ή κάποιο στοιχείο της λίστας οπαδών τους ενηµερώθηκε µετά τη συνένωση και: για κάθε j, 1 j m, <m1 j > είναι τo αναγνωριστικό του λογαριασµού στον οποίο δείχνει το j-οστό στοιχείο της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid1>, για κάθε j, 1 j n, <m2 j > είναι τo αναγνωριστικό του λογαριασµού στον οποίο δείχνει το j-οστό στοιχείο της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid2>, για κάθε j, 1 j k, <m3 j > είναι τo αναγνωριστικό του λογαριασµού στον οποίο δείχνει το j-οστό στοιχείο της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid3>, για κάθε j, 1 j r, <u j > είναι τo αναγνωριστικό της φωτογραφίας της οποίας ανανεώθηκε η λίστα οπαδών της ή/και ο πίνακας επισηµάνσεων της λόγω της συνένωσης των λογαριασµών. S <aid1> <aid2> <aid3> <location>: Γεγονός τύπου Split account το οποίο σηµατοδοτεί το διαχωρισµό του λογαριασµού µε αναγνωριστικό <aid1> σε δύο νέους λογαριασµούς µε αναγνωριστικά <aid2> (για τον πρώτο από αυτούς) και <aid3> (για το δεύτερο). Όσες φωτογραφίες έχουν ληφθεί στη τοποθεσία <location> θα πρέπει να εισαχθούν (ταξινοµηµένες βάσει του πεδίου ) στην λίστα προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid3> και όλες οι υπόλοιπες στην λίστα προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid2>. Ακόµη θα πρέπει να ενηµερώνεται κατάλληλα και το πεδίο <aid> των στοιχείων της λίστας φωτογραφιών που αντιστοιχούν σε κάθε φωτογραφία που περιέχεται στις λίστες αυτές. Τυχόν αναφορές στον λογαριασµό µε αναγνωριστικό <aid1> αντικαθίστανται µε αναφορές στον λογαριασµό µε αναγνωριστικό <aid2>. Αναφορές µπορεί να υπάρχουν στις λίστες οπαδών των στοιχείων της λίστας φωτογραφιών και στους πίνακες επισηµάνσεων των στοιχείων αυτών. Μετά το πέρας της εκτέλεσης ενός τέτοιου γεγονότος το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: S <aid1> <aid2> <aid3> <location> DONE MYPHOTOS1 = <m1 1, m1 2,, m1 m > MYPHOTOS2 = <m2 1, m2 2,, m2 n > MYPHOTOS3 = <m3 1, m3 2,, m3 k > UPDATED = <u 1, u 2, u r > όπου: m είναι το µέγεθος της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid1>, n είναι το µέγεθος της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid2>, k είναι το µέγεθος της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid3> και r είναι το πλήθος των φωτογραφιών για τις οποίες ισχύει πως κάποιο στοιχείο του πίνακα επισηµάνσεων τους ή κάποιο στοιχείο της λίστας οπαδών τους ενηµερώθηκε µετά τη συνένωση και: για κάθε j, 1 j m, <m1 j > είναι τo αναγνωριστικό του λογαριασµού στον οποίο δείχνει το j-οστό στοιχείο της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid1>, για κάθε j, 1 j n, <m2 j > είναι τo αναγνωριστικό του λογαριασµού στον οποίο δείχνει το j-οστό στοιχείο της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid2>, για κάθε j, 1 j k, <m3 j > είναι τo αναγνωριστικό του λογαριασµού στον οποίο δείχνει το j-οστό στοιχείο της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό 8
9 <aid3>, για κάθε j, 1 j r, > <u j > είναι τo αναγνωριστικό της φωτογραφίας της οποίας ανανεώθηκε η λίστα οπαδών ή/και ο πίνακας επισηµάνσεων της λόγω του διαχωρισµού του λογαριασµού µε αναγνωριστικό <aid1>. 9
10 F <YYYYMMDD>: Γεγονός τύπου Find το οποίο σηµατοδοτεί την αναζήτηση όλων των φωτογραφιών που έχουν ληφθεί την ηµεροµηνία <YYYYMMDD>. Μετά το πέρας του γεγονότος θα πρέπει να τυπώνεται η παρακάτω πληροφορία: F <YYYYMMDD> < 1 > TAGS: <a1_id 1 > <a1_id 2 > <a1_id 3 > <a1_id 4 > <a1_id 5 > LIKES: <l1_aid 1 > <l1_aid 2 > <l1_aid m1 > LOCATION: <location 1 > TIMESTAMP: <YYYYMMDD> < 2 > TAGS: <a2_id 1 > <a2_id 2 > <a2_id 3 > <a2_id 4 > <a2_id 5 > LIKES: <l2_aid 1 > <l2_aid 2 > <l2_aid m2 > LOCATION: <location 2 > TIMESTAMP: <YYYYMMDD> < n > TAGS: <an_id 1 > <an_id 2 > <an_id 3 > <an_id 4 > <an_id 5 > LIKES: <ln_aid 1 > <ln_aid 2 > <ln_aid mn > LOCATION: <location n > TIMESTAMP: <YYYYMMDD> DONE όπου n είναι το πλήθος των φωτογραφιών που έχουν ληφθεί την ηµεροµηνία <YYYMMDD> και για κάθε i, 1 i n: για κάθε j, 1 j 5, > <a<i>_id j > είναι τo αναγνωριστικό του λογαριασµού ο οποίος έχει επισηµανθεί στην φωτογραφία µε αναγνωριστικό < i > (δηλαδή υπάρχει δείκτης προς τον λογαριασµό αυτό στον πίνακα επισηµάνσεων του στοιχείου που αντιστοιχεί στη φωτογραφία στη λίστα φωτογραφιών) m i είναι το µέγεθος της λίστας οπαδών της φωτογραφίας µε αναγνωριστικό < i > και για κάθε j, 1 j m i, > <l<i>_aid j > είναι τo αναγνωριστικό του j-οστού στοιχείου της λίστας οπαδών της φωτογραφίας µε αναγνωριστικό <i> <location i > είναι η τοποθεσία στην οποία ελήφθη η φωτογραφία µε αναγνωριστικό < i >. 10
11 P <aid>: Γεγονός τύπου Print το οποίο σηµατοδοτεί το τύπωµα των στοιχείων της λίστας προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid>. Για κάθε τέτοια φωτογραφία θα πρέπει επιπρόσθετα να τυπώνονται και οι πληροφορίες που αφορούν τη φωτογραφία, όπως οι επισηµάνσεις της, η τοποθεσία και η ηµεροµηνία που ελήφθη η φωτογραφία, καθώς και τα στοιχεία της λίστας οπαδών της. Σε αυτό το γεγονός το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: P <aid> < 1 > TAGS: <a1_id 1 > <a1_id 2 > <a1_id 3 > <a1_id 4 > <a1_id 5 > LIKES: <l1_aid 1 > <l1_aid 2 > <l1_aaid m1 > LOCATION: <location 1 > TIMESTAMP: <YYYYMMDD 1 > < 2 > TAGS: <a2_id 1 > <a2_id 2 > <a2_id 3 > <a2_id 4 > <a2_id 5 > LIKES: <l2_aid 1 > <l2_aid 2 > <l2_aid m2 > LOCATION: <location 2 > TIMESTAMP: <YYYYMMDD 2 > < n > TAGS: <an_id 1 > <an_id 2 > <an_id 3 > <an_id 4 > <an_id 5 > LIKES: <ln_aid 1 > <ln_aid 2 > <ln_aid mn > LOCATION: <location n > TIMESTAMP: <YYYYMMDD n > DONE όπου n είναι το πλήθος των στοιχείων στη λίστα προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid>και για κάθε i, 1 i n: για κάθε j, 1 j 5, > <a<i>_id j > είναι τo αναγνωριστικό του λογαριασµού ο οποίος έχει επισηµανθεί στην φωτογραφία µε αναγνωριστικό < i > m i είναι το µέγεθος της λίστας οπαδών της φωτογραφίας µε αναγνωριστικό < i > και για κάθε j, 1 j m n, > <l<i>_aid j > είναι τo αναγνωριστικό του j-οστού στοιχείου της λίστας οπαδών της φωτογραφίας µε αναγνωριστικό < i >, και <location i > είναι η τοποθεσία στην οποία ελήφθη η φωτογραφία µε αναγνωριστικό < i >, <YYYYMMDD i > είναι η ηµεροµηνία στην οποία ελήφθη η φωτογραφία µε αναγνωριστικό < i > (στη µορφή που περιγράφεται παραπάνω). 11
12 Α: Γεγονός τύπου Αcounts print το οποίο σηµατοδοτεί το τύπωµα των στοιχείων της λίστας λογαριασµών και της λίστας προσωπικών φωτογραφιών που περιέχεται σε κάθε λογαριασµό. Σε αυτό το γεγονός το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: A <aid 1 > MYPHOTOS: <p1_id 1 > <p1_id 2 >... <p1_id m1 > <aid 2 > MYPHOTOS: <p2_id 1 > <p2_id 2 >... <p2_id m2 >... <aid n > MYPHOTOS: <pn_id 1 > <pn_id 2 >... <pn_id mn > DONE όπου n είναι το πλήθος των στοιχείων στη λίστα λογαριασµών και για κάθε i, 1 i n:: <aid i > είναι τo αναγνωριστικό του i-οστού λογαριασµού στη λίστα λογαριασµών, m i είναι το µέγεθος της λίστας των προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid i > και για κάθε j, 1 j m i, > <p<i>_id j > είναι τo αναγνωριστικό της j- οστής φωτογραφίας στη λίστα προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid i >. Ε: Γεγονός τύπου Εxpose photos το οποίο σηµατοδοτεί το τύπωµα των στοιχείων της λίστας φωτογραφιών. Για κάθε φωτογραφία θα πρέπει να τυπώνονται και οι πληροφορίες που αφορούν τη φωτογραφία, όπως οι επισηµάνσεις της, η τοποθεσία και η ηµεροµηνία που ελήφθη η φωτογραφία, καθώς και τα στοιχεία της λίστας οπαδών της. Σε αυτό το γεγονός το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: E < 1 > TAGS: <a1_id 1 > <a1_id 2 > <a1_id 3 > <a1_id 4 > <a1_id 5 > LIKES: <l1_aid 1 > <l1_aid 2 > <l1_aaid m1 > LOCATION: <location 1 > TIMESTAMP: <YYYYMMDD 1 > < 2 > TAGS: <a2_id 1 > <a2_id 2 > <a2_id 3 > <a2_id 4 > <a2_id 5 > LIKES: <l2_aid 1 > <l2_aid 2 > <l2_aid m2 > LOCATION: <location 2 > TIMESTAMP: <YYYYMMDD 2 > < n > TAGS: <an_id 1 > <an_id 2 > <an_id 3 > <an_id 4 > <an_id 5 > LIKES: <ln_aid 1 > <ln_aid 2 > <ln_aid mn > LOCATION: <location n > TIMESTAMP: <YYYYMMDD n > DONE όπου n είναι το πλήθος των στοιχείων στη λίστα φωτογραφιών και για κάθε i, 1 i n: για κάθε j, 1 j 5, > <a<i>_id j > είναι τo αναγνωριστικό του λογαριασµού ο οποίος έχει επισηµανθεί στην φωτογραφία µε αναγνωριστικό < i > 12
13 m i είναι το µέγεθος της λίστας οπαδών της φωτογραφίας µε αναγνωριστικό < i > και για κάθε j, 1 j m n, > <l<i>_aid j > είναι τo αναγνωριστικό του j-οστού στοιχείου της λίστας οπαδών της φωτογραφίας µε αναγνωριστικό < i >, <location i > είναι η τοποθεσία στην οποία ελήφθη η φωτογραφία µε αναγνωριστικό < i >, <YYYYMMDD i > είναι η ηµεροµηνία στην οποία ελήφθη η φωτογραφία µε αναγνωριστικό < i > (στην µορφή που περιγράφεται παραπάνω). 13
14 W: Γεγονός τύπου World Print το οποίο σηµατοδοτεί το τύπωµα όλων των δοµών δεδοµένων που υπάρχουν στο σύστηµα. Σε αυτό το γεγονός το πρόγραµµα θα πρέπει να τυπώνει την ακόλουθη πληροφορία: W ACCOUNTS: <aid 1 > MYPHOTOS: <p1_id 1 > <p1_id 2 >... <p1_id m1 > <aid 2 > MYPHOTOS: <p2_id 1 > <p2_id 2 >... <p2_id m2 >... <aid n > MYPHOTOS: <pn_id 1 > <pn_id 2 >... <pn_id mn > PHOTOS: < 1 > TAGS: <a1_id 1 > <a1_id 2 > <a1_id 3 > <a1_id 4 > <a1_id 5 > LIKES: <l1_aid 1 > <l1_aid 2 >... <l1_aid k1 > LOCATION: <location 1 > TIMESTAMP: <YYYYMMDD 1 > < 2 > TAGS: <a2_id 1 > <a2_id 2 > <a2_id 3 > <a2_id 4 > <a2_id 5 > LIKES: <l2_aid 1 > <l2_aid 2 >... <l2_aid k2 > LOCATION: <location 2 > TIMESTAMP: <YYYYMMDD 2 > < r > TAGS: <an_id 1 > <an_id 2 > <an_id 3 > <an_id 4 > <an_id 5 > LIKES: <ln_aid 1 > <ln_aid 2 >... <ln_aid kr > LOCATION: <location r > TIMESTAMP: <YYYYMMDD r > DONE όπου n είναι το πλήθος των στοιχείων στη λίστα λογαριασµών και r είναι το πλήθος των στοιχείων στη λίστα φωτογραφιών και: για κάθε i, 1 i n, > <aid i > είναι τo αναγνωριστικό του i-οστού λογαριασµού στη λίστα λογαριασµών, m i είναι το πλήθος των στοιχείων στη λίστα προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid i > και για κάθε j, 1 j m i, > <p<i>_id j > είναι τo αναγνωριστικό της j-οστής φωτογραφίας που υπάρχει στη λίστα προσωπικών φωτογραφιών του λογαριασµού µε αναγνωριστικό <aid i >, για κάθε i, 1 i r, > (1) < i > είναι τo αναγνωριστικό της i-οστής φωτογραφίας στη λίστα φωτογραφιών, (2) για κάθε j, 1 j 5, > <a<i>_id j > είναι τo αναγνωριστικό του λογαριασµού ο οποίος δεικτοδοτείται από τη j-οστή θέση του πίνακα επισηµάνσεων της φωτογραφίας µε αναγνωριστικό < i >, (3) m i είναι το µέγεθος της λίστας οπαδών της φωτογραφίας µε αναγνωριστικό < i >, (4) για κάθε c, 1 c m i, > <l<i>_aid c > είναι τo αναγνωριστικό του λογαριασµού που δεικτοδοτείται από το j-οστό στοιχείο της λίστας οπαδών της φωτογραφίας µε αναγνωριστικό < i >, (5) <location i > είναι η τοποθεσία στην οποία ελήφθη η φωτογραφία µε αναγνωριστικό < i > και (6) <YYYYMMDD i > είναι η ηµεροµηνία στην οποία ελήφθη η φωτογραφία µε αναγνωριστικό < i > (στην µορφή που περιγράφεται παραπάνω). 14
15 οµές εδοµένων Στη συνέχεια παρουσιάζονται οι δοµές σε C που πρέπει να χρησιµοποιηθούν για την υλοποίηση της παρούσας εργασίας. //////////////////////////////////////////////////////////////////////////////// // Defining the needed structures //////////////////////////////////////////////////////////////////////////////// /** Enum and array doing the location to integer mapping */ typedef enum { attica = 1, central_greece = 2, central_macedonia = 3, crete = 4, east_macedonia_and_thrace = 5, epirus = 6, ionian_islands = 7, north_aegean = 8, peloponnese = 9, south_aegean = 10, thessaly = 11, west_greece = 12, west_macedonia = 13 } location_e; /** * Structure defining a node of the myphotos list (lista prosopikwn fwtografiwn) */ typedef struct myphoto { unsigned int ; /**< The photo identifier. >0 */ struct myphoto *next;/**< Pointer to the next node in the myphotos list */ } myphoto_t; /** * Structure defining a node of the account list (lista logariasmwn) */ typedef struct account { unsigned int aid; /**< The account's identifier */ myphoto_t *myphotos;/**< A list with the photos uploaded by * this account */ struct account *next; /**< Pointer to the next node of the * accounts list */ } account_t; /** * Structure defining a node of the likes list (lista opadwn) */ typedef struct like { account_t *aptr; /**< The account's identifier that liked * the photo. >0 */ struct like *next; /**< Pointer to the next node in the likes list */ } like_t; 15
16 /** * Structure defining a node of the photos list (lista fwtografiwn) */ typedef struct photo { unsigned int ; /**< The photo identifier. >0 */ unsigned int aid; /**< The uploader's account identifier */ location_e location; /**< The location where this photo * was captured */ unsigned int date; /**< The date the photo was * captured. (YYYYMMDD) */ account_t *tags[max_tags];/**< An array with pointers to the * tagged accounts in this * photo */ like_t *likes; /**< A list with the accounts that * like the photo */ struct photo *next; /**< Pointer to the next node of * the photos list */ struct photo *prev; /**< Pointer to the previous node * of the photos list */ } photo_t; // For simplicity we define the two major data structures as global variables account_t* alist_p; /**< The accounts list (lista logariasmwn) */ photo_t* plist_p; /**< The photos list (lista fwtografiwn) */ //////////////////////////////////////////////////////////////////////////////// Συµβουλές Για λόγους ευκολότερης αποσφαλµάτωσης του κώδικα που θα δηµιουργήσετε, συνίσταται ισχυρά κατά την διαγραφή κόµβων να αναθέτετε την τιµή NULL στους δείκτες του προς διαγραφή στοιχείου. Ακόµη συνίσταται να αναθέτεται την τιµή 0 στα υπόλοιπα πεδία που είναι τύπου (unsigned int). 16
My Instagram Παρουσίαση Α Μέρους Προγραμματιστικής Εργασίας
My Instagram Παρουσίαση Α Μέρους Προγραμματιστικής Εργασίας ΗΥ-240 Χειμερινό Εξάμηνο 2013 Διδάσκουσα: Παναγιώτα Φατούρου This presentation by Foivos S. Zakkak is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο Μέρος
ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2013-14 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία 2 ο Μέρος Ημερομηνία Παράδοσης: Τετάρτη, 15 Ιανουαρίου 2014, ώρα 23:59. Τρόπος Παράδοσης:
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος
ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος Ημερομηνία Παράδοσης: Κυριακή, 1 Απριλίου 2018, ώρα 23:59 Τρόπος Παράδοσης:
Διαβάστε περισσότεραΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος
ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος Ηµεροµηνία Παράδοσης: Δευτέρα, 3 Απριλίου 2017, ώρα 23:59. Τρόπος Παράδοσης:
Διαβάστε περισσότεραΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος
ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος Ηµεροµηνία Παράδοσης: Κυριακή, 3 Απριλίου 2016, ώρα 23:59. Τρόπος Παράδοσης:
Διαβάστε περισσότεραΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος
ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2016-2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος Ηµεροµηνία Παράδοσης: Δευτέρα, 14 Νοεµβρίου 2016, ώρα 23:59. Τρόπος
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος
ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018-2019 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 1 Απριλίου 2019, ώρα 23:59 Τρόπος Παράδοσης:
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος
ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 14 Μαΐου 2018, ώρα 23:59 Τρόπος Παράδοσης: Χρησιμοποιώντας
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος
ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 15 Μαΐου 2017, ώρα 23:59. Τρόπος Παράδοσης:
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος
ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2014-15 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος Ημερομηνία Παράδοσης: Παρασκευή, 19 Δεκεμβρίου 2014, ώρα 23:59. Τρόπος
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Προγραμματιστική Εργασία - 2o Μέρος
Πανεπιστήµιο Κρήτης Τµήµα Επιστήµης Υπολογιστών, 4 Μαρτίου 2019 ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2018-2019 Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 13 Μαϊου
Διαβάστε περισσότεραΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 1 ο Μέρος
Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 15 Οκτωβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 1 ο Μέρος Ηµεροµηνία Παράδοσης:
Διαβάστε περισσότεραΠρογραµµατιστική Εργασία 1 ο Μέρος
Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 4 Νοεµβρίου 2011 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2011-12 ιδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 1 ο Μέρος Ηµεροµηνία
Διαβάστε περισσότεραΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος
Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 6 εκεµβρίου 2008 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2008-09 Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 3 ο Μέρος Ηµεροµηνία Παράδοσης:
Διαβάστε περισσότεραΠρογραµµατιστική Εργασία - 2 ο Μέρος
Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 1 εκεµβρίου 2011 ΗΥ240: οµές εδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2011-12 ιδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 2 ο Μέρος Ηµεροµηνία
Διαβάστε περισσότεραΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος
ΗΥ240: Δοµές Δεδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2017-2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 1 ο Μέρος Ηµεροµηνία Παράδοσης: Δευτέρα, 20 Νοεµβρίου 2017, ώρα 23:59. Τρόπος
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 1 ο Μέρος
Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών 12 Οκτωβρίου 2012 ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2011-12 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία 1 ο Μέρος Ημερομηνία
Διαβάστε περισσότεραΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 2 ο Μέρος
ΗΥ240: Δοµές Δεδοµένων Εαρινό Εξάµηνο Ακαδηµαϊκό Έτος 2014-15 Διδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία - 2 ο Μέρος Ηµεροµηνία Παράδοσης: Κυριακή, 18 Μαΐου 2015, ώρα 23:59. Τρόπος Παράδοσης:
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο Μέρος
ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2016 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία 2 ο Μέρος Ημερομηνία Παράδοσης: Κυριακή, 15 Μαίου 2016, ώρα 23:59. Τρόπος Παράδοσης: Χρησιμοποιώντας
Διαβάστε περισσότεραΠρογραµµατιστική Εργασία 2 ο Μέρος
Πανεπιστήµιο Κρήτης, Τµήµα Επιστήµης Υπολογιστών 20 Νοεµβρίου 2012 ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος 2011-12 ιδάσκουσα: Παναγιώτα Φατούρου Προγραµµατιστική Εργασία 2 ο Μέρος Ηµεροµηνία
Διαβάστε περισσότεραhttps://csd.uoc.gr/~hy240b/current/submit.php
Project HY240b - 1η Φάση Διδάσκουσα: Παναγιώτα Φατούρου Βοηθός: Νικόλαος Μπατσαράς Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Ηράκλειο, 09 Μαρτίου 2018 Εισαγωγή Διαδικαστικά Θεματολογία Δομές Χρηστών
Διαβάστε περισσότεραΘεωρητικό Μέρος. 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); } }
Πανεπιστήµιο Ιωαννίνων, Τµήµα Πληροφορικής 2 Νοεµβρίου 2005 Η/Υ 432: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκού Έτους 2005-2006 Παναγιώτα Φατούρου Ηµεροµηνία Παράδοσης 1 ο Σετ Ασκήσεων Θεωρητικό Μέρος:
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος
ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2018-2019 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος Ημερομηνία Παράδοσης: Παρασκευή, 21 Δεκεμβρίου 2018, ώρα 23:59 Τρόπος
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος
ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2016-2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 19 Δεκεμβρίου 2016, ώρα 23:59. Τρόπος
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 1 ο Μέρος
Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών 12 Οκτωβρίου 2009 ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2009-10 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία 1 ο Μέρος Ημερομηνία
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος
ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2017-2018 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2 ο Μέρος Ημερομηνία Παράδοσης: Παρασκευή, 22 Δεκεμβρίου 2017, ώρα 23:59. Τρόπος
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 10: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Διαβάστε περισσότεραΔομές Δεδομένων. Καθηγήτρια Μαρία Σατρατζέμη. Τμήμα Εφαρμοσμένης Πληροφορικής. Δομές Δεδομένων. Τμήμα Εφαρμοσμένης Πληροφορικής
Ενότητα 5: Δείκτες και Δυναμική Δέσμευση- Αποδέσμευση Μνήμης στη C/ Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με δείκτες /Ένα πακέτο για τον ΑΤΔ Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν
Διαβάστε περισσότεραΔιάλεξη 21η: Απλά Συνδεδεμένες Λίστες
Διάλεξη 21η: Απλά Συνδεδεμένες Λίστες Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Πρατικάκης (CSD) Απλές Λίστες CS100, 2015-2016 1 / 10 Δομές δεδομένων Ορισμός:
Διαβάστε περισσότεραHY-486 Αρχές Κατανεμημένου Υπολογισμού
HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Πρώτη Προγραμματιστική Εργασία Προθεσμία παράδοσης: Τρίτη 2/5 στις 23:59. 1. Γενική Περιγραφή Στην πρώτη προγραμματιστική εργασία καλείστε
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 2010 2011, Χειµερινό εξάµηνο Ασκήσεις Επανάληψης Ενδιάµεσης
Διαβάστε περισσότεραProject HY240a - 1η Φάση Διδάσκουσα: Παναγιώτα Φατούρου Βοηθός: Νικόλαος Μπατσαράς Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Ηράκλειο, 24 Οκτωβρίου 2018 Διαδικαστικά Θεματολογία Δομές Μεγάλου Αλεξάνδρου
Διαβάστε περισσότεραΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο Δεύτερη Προγραμματιστική Εργασία
ΗΥ486 - Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2015-2016 Δεύτερη Προγραμματιστική Εργασία Γενική περιγραφή Στη δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε ένα διομότιμο σύστημα (Peer-to-
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 2 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις Άσκηση 1 Έστω ότι µια
Διαβάστε περισσότεραHY240 : Δομές Δεδομένων. Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος
HY240 : Δομές Δεδομένων Φροντιστήριο Προγραμματιστικής Εργασίας 2 ο και 3 ο Μέρος Εισαγωγή Στο 2 ο μέρος της εργασίας θα πρέπει να γίνουν τροποποιήσεις στο πρόγραμμα που προέκυψε κατά την υλοποίηση του
Διαβάστε περισσότεραΕργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα
Εργαστήριο 4: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Ταξινομημένη Λίστα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Λίστες -Υλοποίηση ταξινομημένης λίστας με δυναμική δέσμευση μνήμης ΕΠΛ035
Διαβάστε περισσότεραΕισαγωγή στην επιστήμη των υπολογιστών. Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων
Εισαγωγή στην επιστήμη των υπολογιστών Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων 1 ομή εδομένων Μια δομή δεδομένων (data structure) χρησιμοποιεί μια συλλογή από σχετικές μεταξύ τους μεταβλητές, οι οποίες
Διαβάστε περισσότεραΕνότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις
Ενότητα 2: Στοίβες Ουρές - Λίστες Ασκήσεις και Λύσεις Άσκηση 1 Έστω ότι µια βιβλιοθήκη σας παρέχει πρόσβαση σε στοίβες ακεραίων. Η βιβλιοθήκη σας επιτρέπει να ορίσετε µια στοίβα και να καλέσετε τις 5 βασικές
Διαβάστε περισσότεραΣτοίβες με Δυναμική Δέσμευση Μνήμης
ΕΠΛ 231 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ 10/02/10 Παύλος Αντωνίου Στοίβες με Δυναμική Δέσμευση Μνήμης Στοίβα: Στοίβα είναι μια λίστα που έχει ένα επιπλέον περιορισμό. Ο περιορισμός είναι ότι οι εισαγωγές
Διαβάστε περισσότεραΔιάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 12: Λίστες Υλοποίηση & Εφαρμογές Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Ευθύγραμμες Απλά Συνδεδεμένες Λίστες (εύρεση, εισαγωγή, διαγραφή) - Σύγκριση Συνδεδεμένων Λιστών με Πίνακες
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2009-10 Παναγιώτα Φατούρου. Προγραμματιστική Εργασία 2 ο και 3 ο Μέρος
ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 09- Παναγιώτα Φατούρου Προγραμματιστική Εργασία 2 ο και ο Μέρος Ημερομηνία Παράδοσης: Παρασκευή, 18 Δεκεμβρίου 09, ώρα 08:00 (το πρωί) Τρόπος Παράδοσης:
Διαβάστε περισσότεραHY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο
HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2017-2018 Πρώτη Προγραμματιστική Εργασία Προθεσμία παράδοσης: Δευτέρα 30/4 στις 23:59. 1. Γενική Περιγραφή Στην πρώτη προγραμματιστική εργασία καλείστε
Διαβάστε περισσότεραΔιασυνδεδεμένες Δομές. Λίστες. Προγραμματισμός II 1
Διασυνδεδεμένες Δομές Λίστες Προγραμματισμός II 1 lalis@inf.uth.gr Διασυνδεδεμένες δομές Η μνήμη ενός πίνακα δεσμεύεται συνεχόμενα η πρόσβαση στο i-οστό στοιχείο είναι άμεση καθώς η διεύθυνση του είναι
Διαβάστε περισσότεραΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος
ΗΥ240: Δομές Δεδομένων Χειμερινό Εξάμηνο Ακαδημαϊκό Έτος 2018-2019 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος Ημερομηνία Παράδοσης: Δευτέρα, 19 Νοεμβρίου 2018, ώρα 23:59 Τρόπος
Διαβάστε περισσότεραΦροντιστήριο 4 Σκελετοί Λύσεων
Φροντιστήριο 4 Σκελετοί Λύσεων 1. Ο ζητούμενος ΑΤΔ μπορεί να υλοποιηθεί ως εξής: (i) Διαδοχική χορήγηση μνήμης Υποθέτουμε ότι οι λίστες μας έχουν μέγιστο μέγεθος max και χρησιμοποιούμε τη δομή type elements[max];
Διαβάστε περισσότεραΠρογραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 15: Διασυνδεμένες Δομές - Λίστες Διασυνδεδεμένες δομές δεδομένων Η μνήμη ενός πίνακα δεσμεύεται συνεχόμενα. Η πρόσβαση στο i-οστό στοιχείο είναι άμεση καθώς η διεύθυνση
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη 2005. Μάθηµα 7 ο. έντρο. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 7 ο έντρο Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης έντρο Ορισµός Υλοποίηση µε Πίνακα Υλοποίηση µε είκτες υαδικό έντρο
Διαβάστε περισσότεραΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ 2017-2018 ΧΕΙΜΕΡΙΝΟ ΕΞΑΜΗΝΟ ΜΑΘΗΜΑ: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Ουρές ΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ Μια ουρά αποτελεί μια δομή δεδομένων στη λογική του First-in
Διαβάστε περισσότεραδιεύθυνση πρώτου στοιχείου διεύθυνση i-οστού στοιχείου T t[n]; &t[0] είναι t &t[i] είναι t + i*sizeof(t)
Προγραµµατισµός Ι (ΗΥ120) ιάλεξη 18: ιασυνδεµένες οµές - Λίστες ιασυνδεδεµένες δοµές δεδοµένων Η µνήµη ενός πίνακα δεσµεύεται συνεχόµενα. Η πρόσβαση στο i-οστό στοιχείο είναι άµεσηκαθώς η διεύθυνση του
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη 2005. Μάθηµα 3 ο. Συνδεδεµένες Λίστες. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ111 οµηµένος Προγραµµατισµός Ανοιξη 2005 Μάθηµα 3 ο Συνδεδεµένες Λίστες Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση ΟΑΤ λίστα Ακολουθιακή λίστα Συνδεδεµένη λίστα
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 23: οµές εδοµένων και Αλγόριθµοι Ενδιάµεση Εξέταση Ηµεροµηνία : ευτέρα, 3 Νοεµβρίου 2008 ιάρκεια : 2.00-4.00 ιδάσκουσα : Άννα Φιλίππου Ονοµατεπώνυµο: ΣΚΕΛΕΤΟΙ
Διαβάστε περισσότεραυναµική έσµευση Μνήµης (συν.) ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 2 Εφαρµογή
υναµική έσµευση Μνήµης (συν.) Στην ενότητα αυτή θα µελετηθούν: Μια εφαρµογή συνδεδεµένων λιστών ιπλά συνδεδεµένες Λίστες ΕΠΛ 132 Αρχές Προγραµµατισµού ΙΙ 1 Εφαρµογή Ζητούµενο: Πρόγραµµα που παίρνει σαν
Διαβάστε περισσότεραΒασικές οµές εδοµένων
Βασικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Αφηρηµένοι Τύποι εδοµένων Οι ΑΤ Στοίβα και Ουρά Υλοποίηση των ΑΤ Στοίβα και Ουρά µε ιαδοχική και υναµική Χορήγηση Μνήµης
Διαβάστε περισσότεραΥλοποίηση Λιστών. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Υλοποίηση Λιστών Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ευθύγραμμές Απλά και Διπλά Συνδεδεμένες Λίστες Κυκλικές Απλά και Διπλά Συνδεδεμένες Λίστες Τεχνικές Μείωσης Μνήμης ΕΠΛ 231 Δομές
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δομές Δεδομένων Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2009-2010 Δομές Δεδομένων Μια δομή δεδομένων είναι μια συλλογή δεδομένων με κάποιες
Διαβάστε περισσότεραΟι λίστες, χάνοντας τα πλεονεκτήματα των πινάκων, λύνουν προβλήματα που παρουσιάζουν οι πίνακες
Δομές δεδομένων Πίνακες Οι πίνακες είναι το πιο απλό «μέσο» αποθήκευσης ομοειδούς πληροφορίας. Χρησιμοποιούν ακριβώς όση μνήμη χρειάζεται για την αποθήκευση της πληροφορίας Επιτρέπουν την προσπέλαση άμεσα
Διαβάστε περισσότεραΠρογραμματισμός Δομές Δεδομένων
Προγραμματισμός Δομές Δεδομένων Προγραμματισμός Δομές Δεδομένων (Data Structures) Καινούργιοι τύποι δεδομένων που αποτελούνται από την ομαδοποίηση υπαρχόντων τύπων δεδομένων Ομαδοποίηση πληροφορίας που
Διαβάστε περισσότεραΔιάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 0: Λίστες ΙΙ Κυκλικές Λίστες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κυκλικές Απλά Συνδεδεμένες Λίστες - Κυκλικές Διπλά Συνδεδεμένες
Διαβάστε περισσότεραΠρογραμματιστική Εργασία Μέρος Β. Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης
Προγραμματιστική Εργασία Μέρος Β Δρακωνάκης Κώστας Παπαϊωάννου Αντώνης Διαδικαστικά Παράδοση: Σάββατο, 19 Δεκεμβρίου 2016, ώρα 23:59 Compile & run σε μηχανήματα της σχολής Μέρος της βαθμολογίας Τρόπος
Διαβάστε περισσότεραΕνότητα 2 Στοίβες Ουρές - Λίστες. ΗΥ240 - Παναγιώτα Φατούρου 1
Ενότητα 2 Στοίβες Ουρές - Λίστες ΗΥ240 - Παναγιώτα Φατούρου 1 Λίστες Γραµµική λίστα (linear list) είναι ένα σύνολο από n 0 στοιχεία ή κόµβους L 1,..., L n, τα οποία είναι διατεταγµένα µε γραµµική σειρά.
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Άσκηση αυτοαξιολόγησης 3-4 Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητες 3 & 4: ένδρα, Σύνολα & Λεξικά Ασκήσεις και Λύσεις Άσκηση 1 Γράψτε
Διαβάστε περισσότεραΣτοίβες Ουρές - Λίστες
Ενότητα 3 Στοίβες Ουρές - Λίστες ΗΥ240 - Παναγιώτα Φατούρου 1 Λίστες Γραµµική λίστα (linear list) είναι ένα σύνολο από n 0 στοιχεία ή κόµβους L 1,..., L n, τα οποία είναι διατεταγµένα µε γραµµική σειρά.
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες
Ενότητα 6: Εφαρμογή Συνδεδεμένων Λιστών: Αλφαβητικό ευρετήριο κειμένου- Υλοποίηση ΑΤΔ Στοίβα και Ουρά με δείκτες Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες
Διαβάστε περισσότεραΔιάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl232
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα
Ενότητα 4: Ο ΑΤΔ Λίστα & Υλοποίηση Λίστας με σειριακή αποθήκευση- Ο ΑΤΔ Συνδεδεμένη Λίστα- Υλοποίηση ΑΤΔ Συνδεδεμένη Λίστα με πίνακα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό
Διαβάστε περισσότεραΓράφοι. Ορολογία. Ορισµός: G = (V, E) όπου. Ορολογία (συνέχεια) γράφος ή γράφηµα (graph) V:ένα σύνολο E:µια διµελής σχέση στο V
Γράφοι Ορολογία γράφος ή γράφηµα (graph) Ορισµός: G = (V, E) όπου V:ένα σύνολο E:µια διµελής σχέση στο V Ορολογία (συνέχεια) κάθε v V ονοµάζεται κορυφή (vertex) ή κόµβος (node) κάθε (v 1, v 2 ) Ε ονοµάζεται
Διαβάστε περισσότεραιαφάνειες παρουσίασης #5 (β)
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ http://www.softlab.ntua.gr/~nickie/courses/progtech/ ιδάσκοντες: Γιάννης Μαΐστρος (maistros@cs.ntua.gr) Στάθης Ζάχος (zachos@cs.ntua.gr) (nickie@softlab.ntua.gr) ιαφάνειες παρουσίασης
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ
ΕΝΟΤΗΤΑ 4 ΣΥΝΟΛΑ - ΛΕΞΙΚΑ ΗΥ240 - Παναγιώτα Φατούρου Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο U αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενων από έναν
Διαβάστε περισσότεραυναµικές οµές εδοµένων
υναµικές οµές εδοµένων Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: υναµικές οµές εδοµένων Γενικά υναµική έσµευση Μνήµης οµή τύπου structure αυτοαναφορικές δοµές Η δήλωση typedef στη C Αναπαράσταση
Διαβάστε περισσότεραΔιάλεξη 22: Δυαδικά Δέντρα. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 22: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης - Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου
Διαβάστε περισσότεραΔιάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 1 Διάλεξη 08: Λίστες ΙΙ Κυκλικές Λίστες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κυκλικές Απλά Συνδεδεμένες Λίστες - Κυκλικές Διπλά Συνδεδεμένες
Διαβάστε περισσότεραΔιάλεξη 17: Δυαδικά Δέντρα. Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 7: Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυαδικά Δένδρα Δυαδικά Δένδρα Αναζήτησης Πράξεις Εισαγωγής, Εύρεσης Στοιχείου, Διαγραφής Μικρότερου Στοιχείου Διδάσκων:
Διαβάστε περισσότεραΕνότητα 2 Στοίβες Ουρές - Λίστες
Ενότητα 2 Στοίβες Ουρές - Λίστες ΗΥ240 - Παναγιώτα Φατούρου 1 Λίστες Γραµµική λίστα (linear list) είναι ένα σύνολο από n 0 στοιχεία ή κόµβους e 1,..., e n, τα οποία είναι διατεταγµένα µε γραµµική σειρά.
Διαβάστε περισσότεραΠρογραµµατισµός Ι (ΗΥ120)
Προγραµµατισµός Ι (ΗΥ120) Διάλεξη 15: Διασυνδεµένες Δοµές - Λίστες Δοµές δεδοµένων! Ένα τυπικό πρόγραµµα επεξεργάζεται δεδοµένα Πώς θα τα διατάξουµε? 2 Τι λειτουργίες θέλουµε να εκτελέσουµε? Πώς θα υλοποιήσουµε
Διαβάστε περισσότεραAlternative to Balanced Trees, Comms of the ACM, 33(6), June 1990,
ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Πληροφορικής & Τηλεπικοινωνιών Μια σημείωση από τον Α. Δελή για το άρθρο: W. Pugh, Skip Lists: A Probabilistic Alternative to Balanced Trees, Comms of the ACM, 33(), June 10,
Διαβάστε περισσότεραΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές δεδομένων. Ενότητα 2η: Στοίβες Ουρές - Λίστες Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 2η: Στοίβες Ουρές - Λίστες Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 2 Στοίβες Ουρές - Λίστες ΗΥ240 - Παναγιώτα Φατούρου 2 Λίστες
Διαβάστε περισσότεραΗΥ360 Αρχεία και Βάσεις εδοµένων
ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης Tutorial B-Trees, B+Trees Μπαριτάκης Παύλος 2018-2019 Ιδιότητες B-trees Χρήση για μείωση των προσπελάσεων στον δίσκο Επέκταση των Binary Search Trees
Διαβάστε περισσότεραΔιάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες)
Τμήμα Πληροφορικής Πανεπιστήμιο Κύπρου ΕΠΛ132 Αρχές Προγραμματισμού II Διάλεξη 15: Δομές Δεδομένων IV (Διπλά Συνδεδεμένες Λίστες) Δημήτρης Ζεϊναλιπούρ http://www.cs.ucy.ac.cy/courses/epl132 15-1 Περιεχόμενο
Διαβάστε περισσότεραΔομές Δεδομένων. Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα. Καθηγήτρια Μαρία Σατρατζέμη
Ενότητα 7: Άλλες παραλλαγές Συνδεδεμένων Λιστών-Παράσταση Αραιού Πολυωνύμου με Συνδεδεμένη Λίστα Καθηγήτρια Μαρία Σατρατζέμη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative
Διαβάστε περισσότεραΕνότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)
Ενότητα 9 (Union-Find) ΗΥ240 - Παναγιώτα Φατούρου 1 Έστω ότι S 1,, S k είναι ξένα υποσύνολα ενός συνόλου U, δηλαδή ισχύει ότι S i S j =, για κάθε i,j µε i j και S 1 S k = U. Λειτουργίες q MakeSet(X): επιστρέφει
Διαβάστε περισσότεραΚεφάλαιο 14. οµές Ευρετηρίων για Αρχεία. ιαφάνεια 14-1
ιαφάνεια 14-1 Κεφάλαιο 14 οµές Ευρετηρίων για Αρχεία Copyright 2007 Ramez Elmasri and Shamkant B. NavatheΕλληνικήΈκδοση, ιαβλος, Επιµέλεια Μ.Χατζόπουλος 1 Θα µιλήσουµε για Τύποι Ταξινοµηµένων Ευρετηρίων
Διαβάστε περισσότεραΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο)
ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Δυναμική Δέσμευση Μνήμης και Δομές Δεδομένων (Φροντιστήριο) Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου http://www.cs.ucy.ac.cy/courses/epl232 Το μάθημα αυτό
Διαβάστε περισσότεραΔομές Δεδομένων & Αλγόριθμοι
Λίστες Λίστες - Απλά Συνδεδεμένες Λίστες - Διπλά Συνδεδεμένες Λίστες Είδη Γραμμικών Λιστών Σειριακή Λίστα Καταλαμβάνει συνεχόμενες θέσεις κύριας μνήμης Συνδεδεμένη Λίστα Οι κόμβοι βρίσκονται σε απομακρυσμένες
Διαβάστε περισσότεραΔομές δεδομένων. Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές δεδομένων Ενότητα 8: Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find) Παναγιώτα Φατούρου Τμήμα Επιστήμης Υπολογιστών Ενότητα 8 Ξένα Σύνολα
Διαβάστε περισσότεραSanta Claus Παρουσίαση Α Μέρους Προγραμματιστικής Εργασίας
Santa Claus Παρουσίαση Α Μέρους Προγραμματιστικής Εργασίας ΗΥ-240 Χειμερινό Εξάμηνο 2015 Διδάσκουσα: Παναγιώτα Φατούρου Παρουσίαση: Βασίλειος Θεοδοσιάδης (vtheodos@ics.forth.gr) Πέμπτη, 29 Οκτωβρίου 2015
Διαβάστε περισσότεραΦροντιςτήριο. Linked-List
Φροντιςτήριο Linked-List 1 Linked List Μια linked list είναι μια ακολουθία από ςυνδεδεμένουσ κόμβουσ Κάθε κόμβοσ περιέχει τουλάχιςτον Μια πληροφορία (ή ένα struct) Δείκτη ςτον επόμενο κόμβο τησ λίςτασ
Διαβάστε περισσότεραHY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο
HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε
Διαβάστε περισσότεραInsert(K,I,S) Delete(K,S)
ΕΝΟΤΗΤΑ 5 ΣΥΝΟΛΑ & ΛΕΞΙΚΑ Φατούρου Παναγιώτα 1 Σύνολα (Sets) Τα µέλη ενός συνόλου προέρχονται από κάποιο χώρο αντικειµένων/στοιχείων (π.χ., σύνολα αριθµών, λέξεων, ζευγών αποτελούµενα από έναν αριθµό και
Διαβάστε περισσότερα4. Συνδεδεμένες Λίστες
Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων 4. Συνδεδεμένες Λίστες 2 ομές εδομένων 4 5 Χρήστος ουλκερίδης Τμήμα Ψηφιακών Συστημάτων 10/11/2016 Εισαγωγή
Διαβάστε περισσότεραΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Οικονοµικό Πανεπιστήµιο Αθηνών Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας ΠΛΗΡΟΦΟΡΙΑΚΑ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Κεφάλαιο 9 οµές εδοµένων σε C Γιώργος Γιαγλής Περίληψη Κεφαλαίου 9 οµές εδοµένων υναµικές
Διαβάστε περισσότεραΚατ οίκον Εργασία 2 Σκελετοί Λύσεων
Κατ οίκον Εργασία 2 Σκελετοί Λύσεων Άσκηση 1 Ο ζητούμενος ΑΤΔ μπορεί να υλοποιηθεί ως μια ακολουθία από στοιχεία τύπου window συνοδευόμενη από τις πράξεις: MakeNewWindow(L,w) Destroy(L,w) SwitchTo(L,w)
Διαβάστε περισσότεραΔιδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ
Διάλεξη 6: Διαχείριση Μνήμης & Δυναμικές Δομές Δεδομένων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Δυναμικές Δομές Δεδομένων Γενικά Δυναμική Δέσμευση/Αποδέσμευση Μνήμης Δομή τύπου structure
Διαβάστε περισσότεραΕνότητα 6: Κατακερματισμός Ασκήσεις και Λύσεις
ΗΥ2, Ενότητα : Ασκήσεις και Λύσεις Ενότητα : Κατακερματισμός Ασκήσεις και Λύσεις Άσκηση 1 Χρησιμοποιήστε τη συνάρτηση κατακερματισμού της διαίρεσης ως πρωτεύουσα συνάρτηση κατακερματισμού και τη συνάρτηση
Διαβάστε περισσότεραΔιάλεξη 08: ΛίστεςΙΙ Κυκλικές Λίστες. Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 0: ΛίστεςΙΙ Κυκλικές Λίστες Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Κυκλικές Απλά Συνδεδεμένες Λίστες - Κυκλικές Διπλά Συνδεδεμένες Λίστες - Τεχνικές Μείωσης Χώρου Διδάσκων:
Διαβάστε περισσότεραυναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα:
υναµικές οµές εδοµένων (συν.) Στην ενότητα αυτή θα µελετηθούν τα εξής επιµέρους θέµατα: Ταξινοµηµένες Λίστες µε δυναµική δέσµευση µνήµης Αναδροµκές συναρτήσεις ΕΠΛ 12 Αρχές Προγραµµατισµού ΙΙ 1 Λίστες
Διαβάστε περισσότεραΕργαστήριο 5: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Διπλά Συνδεδεμένη Λίστα
Εργαστήριο 5: Υλοποίηση Αφηρημένου Τύπου Δεδομένων: Διπλά Συνδεδεμένη Λίστα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Διπλά Συνδεδεμένες Λίστες -Υλοποίηση Διπλά Συνδεδεμένης Λίστας με
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΕΠΛ 035: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 35: οµές εδοµένων και Αλγόριθµοι για Ηλεκτρολόγους Μηχανικούς και Μηχανικούς Υπολογιστών Ακαδηµαϊκό έτος 21 211, Χειµερινό εξάµηνο Όλες οι ασκήσεις να δακτυλογραφηθούν
Διαβάστε περισσότεραΛΙΣΤΕΣ. Ορισμός ΑΤΔ Λίστα ΑΤΔ Ακολουθιακή Λίστα Διαχείριση Δεικτών και Λιστών στη C ΑΤΔ Συνδεδεμένη Λίστα. Εφαρμογές και Χρήση Λιστών
ΛΙΣΤΕΣ Ορισμός ΑΤΔ Λίστα ΑΤΔ Ακολουθιακή Λίστα Διαχείριση Δεικτών και Λιστών στη C ΑΤΔ Συνδεδεμένη Λίστα Υλοποίηση με δείκτες (pointers) Υλοποίηση με πίνακα Εφαρμογές και Χρήση Λιστών Λίστες (Lists) Δεδομένα
Διαβάστε περισσότεραΑναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής
Αναδροµή Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής 1 Αναδροµή Βασική έννοια στα Μαθηµατικά και στην Πληροφορική.
Διαβάστε περισσότεραΠΛΗ111. Ανοιξη Μάθηµα 5 ο. Ουρά. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης
ΠΛΗ οµηµένος Προγραµµατισµός Ανοιξη 5 Μάθηµα 5 ο Ουρά Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης Ανασκόπηση Αφηρηµένος Τύπος εδοµένων Ουρά Υλοποίηση µε Κυκλικό Πίνακα Υλοποίηση
Διαβάστε περισσότερα