Β' ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ - 29 ΙΟΥΝΙΟΥ 2008 ΧΡΟΝΟΣ ΕΞΕΤΑΣΗΣ 180'

Σχετικά έγγραφα
#include <stdlib.h> Α. [-128,127] Β. [-127,128] Γ. [-128,128]

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Α' ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ 8 ΙΟΥΝΙΟΥ 2008 ΑΠΑΝΤΗΣΕΙΣ ΣΤΑ ΘΕΜΑΤΑ

Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char

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

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

Α Β Γ static; printf("%c\n", putchar( A +1)+2); B DB BD. int i = 0; while (++i); printf("*");

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

Κατ οίκον Εργασία 3 Σκελετοί Λύσεων

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

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

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

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

Διδάσκων: Κωνσταντίνος Κώστα

Δένδρα. Μαθηματικά (συνδυαστικά) αντικείμενα. Έχουν κεντρικό ρόλο στην επιστήμη των υπολογιστών :

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

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

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

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

Δομές Δεδομένων και Αλγόριθμοι

Δομές Δεδομένων (Εργ.) Ακ. Έτος Διδάσκων: Ευάγγελος Σπύρου. Εργαστήριο 10 Δυαδικά Δένδρα Αναζήτησης

Μάθημα 22: Δυαδικά δέντρα (Binary Trees)

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

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

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δοµές Δεδοµένων

Δομές Δεδομένων και Αλγόριθμοι

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

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

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

4 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Γράφημα. Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα: Σύνολο κορυφών (vertex set) Σύνολο ακμών (edge set) 4 5 πλήθος κορυφών πλήθος ακμών

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

Εργαστηριακή Άσκηση 1

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

Αλγόριθµοι και Πολυπλοκότητα

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

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

ΤΕΜ-101 Εισαγωγή στους Η/Υ Εξεταστική Ιανουαρίου 2011 Θέματα Β

Δομημένος Προγραμματισμός (ΤΛ1006)

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

Εργαστήριο 2: Πίνακες

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

Δομές Δεδομένων και Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι

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

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

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

Διάλεξη 17: O Αλγόριθμος Ταξινόμησης HeapSort

Ταξινόμηση κάδου και ταξινόμηση Ρίζας Bucket-Sort και Radix-Sort

Προγραμματισμός Η/Υ (ΤΛ2007 )

που θα δώσει αποτέλεσµα 48, λόγω της αριστερής προσεταιριστικότητας των τελεστών / και *, ενώ η επιθυµητή αντικατάσταση θα ήταν η

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Ενδεικτικές Απαντήσεις Εξετάσεων Α' Περιόδου Θέµα 1. (α') 2 - ii 3 - iii 4 - iv

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

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

Αναδρομικοί Αλγόριθμοι

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Δομές Δεδομένων και Αλγόριθμοι

Εργασία 3 Σκελετοί Λύσεων

Αναδροµή. Σε αυτήν την (βοηθητική) ενότητα θα µελετηθούν τα εξής : Η έννοια της αναδροµής Υλοποίηση και αποδοτικότητα Αφαίρεση της αναδροµής

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

Προγραμματιστικές Τεχνικές

Δένδρα. Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:

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

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

#4. Heaps (σωροί), η ταξινόμηση HeapSort, η δομή std::priority_queue της STL

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

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΕΝΟΤΗΤΑ 7 ΟΥΡΕΣ ΠΡΟΤΕΡΑΙΟΤΗΤΑΣ ΣΩΡΟΙ

Ανάπτυξη Μεγάλων Εφαρµογών στη Γλώσσα C (2)

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

Περιεχόμενα. Πρόλογος... 17

Σχεδίαση και Ανάλυση Αλγορίθμων

Ουρές Προτεραιότητας: Υπενθύμιση. Σωροί / Αναδρομή / Ταξινόμηση. Υλοποίηση Σωρού. Σωρός (Εισαγωγή) Ορέστης Τελέλης

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

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #5

Άσκηση 3 (ανακοινώθηκε στις 24 Απριλίου 2017, προθεσμία παράδοσης: 2 Ιουνίου 2017, 12 τα μεσάνυχτα).

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

Προγραμματιστικές Τεχνικές

Κατανεμημένα Συστήματα Ι

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

Προγραμματιστικές Ασκήσεις, Φυλλάδιο 1

Δείκτες (Pointers) Ένας δείκτης είναι μια μεταβλητή με τιμή μια διεύθυνση μνήμης. 9.8

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

Κατανεμημένα Συστήματα Ι

Heapsort Using Multiple Heaps

Εργαστήριο 8: Αναδρομική διεργασία εισαγωγής καινούριου κόμβου σε ΔΔΑ

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

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

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

Αναδρομή Ανάλυση Αλγορίθμων

ΕΡΓΑΣΤΗΡΙΑΚΕΣ ΑΣΚΗΣΕΙΣ C ΣΕΙΡΑ 2 η

Ταξινόμηση. Σαλτογιάννη Αθανασία

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e

Δομές Αναζήτησης. κλειδί από ολικά διατεταγμένο σύνολο. Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες: Εισαγωγή ενός νέου στοιχείου

Transcript:

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ: ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΞΕΙΔΙΚΕΥΣΗ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ (ΠΛΣ) ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ: ΒΑΣΙΚΕΣ ΕΞΕΙΔΙΚΕΥΣΕΙΣ ΣΕ ΘΕΩΡΙΑ ΚΑΙ ΛΟΓΙΣΜΙΚΟ (ΠΛΣ50) Β' ΤΕΛΙΚΗ ΕΞΕΤΑΣΗ - 29 ΙΟΥΝΙΟΥ 2008 ΧΡΟΝΟΣ ΕΞΕΤΑΣΗΣ 180' Επώνυμο ΑΜ Ονομα Τμήμα ΘΕΜΑ 1 ΜΟΝΑΔΕΣ 2 Τι θα εμφανιστεί στην οθόνη, αν εκτελεστεί το παρακάτω πρόγραμμα: int main(){ int i, a[10] int *p; for (i=0; i < 10 ; ++i) a[i] = i; p = a; printf( %d\n, ++(*p++)); Α Β Γ Δ Ε 0 1 2 3 ΘΕΜΑ 2 ΜΟΝΑΔΕΣ 2 Με ποιες εντολές είναι η ισοδύναμη η παρακάτω εντολή ανάθεσης; *p = *p + 1; ΑΠΑΝΤΗΣΗ (επιλέξτε μία ή περισσότερες από τις παρακάτω επιλογές) Α Β Γ Δ *p++ *(p++) *p+=1 ++(*p) ΘΕΜΑ 3 ΜΟΝΑΔΕΣ 4 Έστω η εξής δήλωση μίας συνάρτηση f: int f(int *n, int l); Ποια/ες από τις παρακάτω κλήσεις είναι νόμιμες ΑΠΑΝΤΗΣΗ (επιλέξτε μία ή περισσότερες από τις παρακάτω επιλογές ) Α Β Γ Δ Ε int n[10], l; int t[30], l; int n, l; int *n, *p; Όλες f(n, - 3); f(t + 2, l - 2); f( &n, l/2); f(n, p - n);

ΘΕΜΑ 4 ΜΟΝΑΔΕΣ 4 Ποια από τις παρακάτω συναρτήσεις εκτελούν την ίδια λειτουργία με την f int f(int *n, int l) { if ( l == 0) return; (*n)++; return f( ++n, --l); Α int f1(int *n, int l) { int I; for (i=0; i < l; i++, ++n) *n++; Β int f2(int *n, int l) { int i = 0; while (i < l) { (*++n)++; ++i; Γ int f3(int *n, int l) { int i = 0; while (i <= l) { (*n+i )++; ++i; Δ int f4(int *n, int l) { int *n1 = n; do { *n1+=1; ++n1; while ( n1 - n < l ); ΘΕΜΑ 5 ΜΟΝΑΔΕΣ 3 Σε μία ουρά εισάγονται αριθμοί από το διάστημα 0 έως και 9 Θεωρείστε την ακόλουθη σειρά ενεργειών σε μία ουρά κατά την οποία ένας αριθμός σηματοδοτεί την πράξη εισαγωγής του αριθμού αυτού στην ουρά και ένας αστερίσκος (*) εξαγωγή στοιχείου από την ουρά Ποια θα είναι τα περιεχόμενα της ουράς, μετά την εκτέλεση των παρακάτω πράξεων, με τη σειρά που δίδονται 0 1 * 2 3 * * 4 5 6 * * 7 * 8 9 Α Β Γ Δ Ε 1467 5689 6789 5789 89 2

ΘΕΜΑ 6 ΜΟΝΑΔΕΣ 3 Τί θα τυπωθεί στην οθόνη αν εκτελεστεί το παρακάτω πρόγραμμα pop και push είναι πράξεις εισαγωγής/εξαγωγής στοιχείων από μία στοίβα, αντίστοιχα void push (int k); /* Εισάγει τιµή k στη στοίβα */ int pop(); /* Επιστρέφει την τιµή που έχει εξαχθεί*/ int main(int argc, char **argv) { int i; for (i=0; i< 10; ++i) push(i); while ( pop() ){ push( pop() ); printf( "%d %d ", pop(), pop() ); Α Β Γ Δ Ε 8 6 7 7 4 4 1 1 8 6 4 2 1 0 8 6 4 3 2 1 8 7 5 4 2 1 9 8 7 6 5 4 3 2 1 0 ΘΕΜΑ 7 ΜΟΝΑΔΕΣ 4 Τι θα εμφανιστεί στην οθόνη αν εκτελεστεί το παρακάτω πρόγραμμα #include <stdioh> #include <stdlibh> typedef struct node link; struct node { int key; link *next; ; int main(int argc, char **argv) { link x, y, *t; xkey = 1; xnext = &y; ykey = 1; ynext = &x; for (t = &x; t->key < 10; t = t->next) t->key = xkey + ykey; printf("%d\n", t->key); return 0; Α Β Γ Δ Ε 10 13 20 23 30 3

ΘΕΜΑ 8 ΜΟΝΑΔΕΣ 2 Έστω το Δυαδικό δέντρο αναζήτησης 14 / \ 2 16 / \ 1 5 / 4 Έστω ότι διαγράφουμε τη ρίζα, αντικαθιστώντας την με τιμή του αριστερού υποδέντρου Ποια θα είναι η νέα τιμή της ρίζας; Α Β Γ Δ E 1 2 4 5 16 ΘΕΜΑ 9 ΜΟΝΑΔΕΣ 3 Σε ποια διαπέραση (preorder, inorder, postorder, level- order) του δέντρου αντιστοιχεί η κάθε μία ακολουθία; Α) E C B A D H F G I Β) E C H B D F I A G Γ) A B D C G F I H E Δ) A B C D E F G H I ΑΠΑΝΤΗΣΗ (σημειώστε τις λέξεις preorder, inorder κλπ κάτω από τη σωστή θέση Α- Δ) Α Β Γ Δ preorder inorder postorder level- order ΘΕΜΑ 10 ΜΟΝΑΔΕΣ 4 Σε πόσες θέσεις σε ένα σωρό (heap) 15 διακριτών τιμών μπορεί να βρίσκεται το 5ο μεγαλύτερο στοιχείο; Α Β Γ Δ Ε 3 6 7 8 14 4

ΘΕΜΑ 11 ΜΟΝΑΔΕΣ 4 Έστω x ένας κόμβος με 2 παιδιά σε ένα Δυαδικό Δέντρο Αναζήτησης Αποδείξτε ότι: Α Ο αμέσως επόμενος κόμβος (σε τιμή) από τον x δεν έχει αριστερό παιδί Β Ο αμέσως προηγούμενος κόμβος (σε τιμή) από τον x δεν έχει δεξί παιδί Σε μια inorder διαπέραση, επισκεπτόμαστε τους κόμβους του ΔΔΑ σε αύξουσα σειρά τιμής και οι κόμβοι του αριστερού (δεξιού) υποδέντρου του x εμφανίζονται ακριβώς πριν (μετά) τον x Α (Β) Ας υποθέσουμε ότι ο y (z) είναι ο αμέσως επόμενος (προηγούμενος) κόμβος σε τιμή από τον x και έχει ένα αριστερό (δεξιό) παιδί Το παιδί αυτό θα είναι ανάμεσα στον x (z) και στον y (x) στην inorder διαπέραση Αυτό όμως αντιβαίνει στην υπόθεση ότι ο y είναι ο αμέσως επόμενος (προηγούμενος) κόμβος από τον x Άτοπο 5

ΘΕΜΑ 12 ΜΟΝΑΔΕΣ 4 Στο ακόλουθο σχήμα περιγράφεται ένα τμήμα (υποσύστημα) του πληροφοριακού συστήματος ενός υποθετικού φορέα διαχείρισης περιβάλλοντος με τη βοήθεια ενός διαγράμματος ροής δεδομένων Το υποσύστημα αυτό είναι υπεύθυνο για τη δημιουργία των χαρτών επικινδυνότητας δασικής πυρκαγιάς και την ανακοίνωσή τους στο internet, στην ΓΓΠΠ, και σε εσωτερικό τερματικό σταθμό του φορέα Επειδή η περιγραφή των ροών είναι εκτενής, δεν είναι δυνατόν να τοποθετηθεί εντός του διαγράμματος Για το σκοπό αυτό χρησιμοποιείται ένας πίνακας, την πρώτη στήλη του οποίου καλείστε να συμπληρώσετε με τα σύμβολα του διαγράμματος ΜΕΤΡΗΣΕΙΣ F1 F2 Τ2 F5 Web server Τ1 F3 F6 Τ3 F7 ΧΩΡΙΚΑ ΔΕΔΟΜΕΝΑ ΠΣ Γενικής Γραµµατείας Πολιτικής Προστασίας F4 Τ4 F8 Τ6 F10 Τ5 F9 Οθόνη ΑΠΑΝΤΗΣΗ (Σημειώστε στην πρώτη κενή στήλη τις τιμές Τ1- Τ6 και F1- F10 στις σωστές θέσεις) F5 Α1 Script με τιμές Θ, ΣΥ, ΚΑ, ΤΑ για εμφάνιση σε google maps F8 Α2 Δείκτης επικινδυνότητας (ΔΕ) Τ6 Α3 Δημιουργία εγγραφής XML για το σύστημα της ΓΓΠΠ F10 Α4 Εγγραφή XML για την αποστολή του ΔΕ F2 Α5 Εγγραφή Θ, ΣΥ, ΚΑ, ΤΑ F3 Α6 Εγγραφή Θ, ΣΥ, ΚΑ, ΤΑ F4 Α7 Εγγραφή Θ, ΣΥ, ΚΑ, ΤΑ F6 Α8 Εγγραφή ΧΥ, ΚΕ, Β, ΔΚ T2 Α9 Εμφάνιση μετρήσεων σε Google Maps T1 Α10 Λήψη μετρήσεων T3 Α11 Λήψη χωρικών δεδομένων F9 Α12 Μορφοποιημένη εγγραφή Θ, ΣΥ, ΚΑ, ΚΑ για την οθόνη Τ5 Α13 Μορφοποίηση μετρήσεων για εμφάνιση στην οθόνη F7 Α14 Συντεταγμένες (ΧΥ), Κλίση εδάφους (ΚΕ), είδος βλάστησης (Β), δείκτης κινδύνου (ΔΚ) F1 Α15 Τιμές μετρήσεων θερμοκρασίας (Θ), σχετικής υγρασίας (ΣΥ), κατεύθυνσης ανέμου (ΚΑ), ταχύτητας ανέμου (ΤΑ) Τ4 Α16 Υπολογισμός δείκτη επικινδυνότητας 6

ΘΕΜΑ 13 ΜΟΝΑΔΕΣ 4 Με αναφορά στο θέμα 12, να περιγράψετε τη λειτουργική απαίτηση η περιγραφή της οποίας περιλαμβάνει τις ροές F1, F3, F6, F7, F8 και F10 με τη δομή "περιγραφή είσοδος επεξεργασία έξοδος" Θεωρήστε ότι ο υπολογισμός του δείκτη επικινδυνότητας γίνεται με κάποιον αλγόριθμο που ονομάζεται "Risk6" Περιγραφή: Διαβάζονται μετρήσεις και χωρικά δεδομένα και υπολογίζεται ο δείκτης επικινδυνότητας για κάθε περιοχή ο οποίος μορφοποιείται ως εγγραφή XML και αποστέλλεται στο Πληροφοριακό Σύστημα της ΓΓΠΠ Είσοδος: Τιμές μετρήσεων θερμοκρασίας (Θ), σχετικής υγρασίας (ΣΥ), κατεύθυνσης ανέμου (ΚΑ), ταχύτητας ανέμου (ΤΑ) από την αποθήκη "Μετρήσεις", Συντεταγμένες (ΧΥ), Κλίση εδάφους (ΚΕ), είδος βλάστησης (Β), δείκτης κινδύνου (ΔΚ) από την αποθήκη "Χωρικά Δεδομένα" Επεξεργασία: Εκτελείται ο αλγόριθμος Risk6 Εξοδος: Εγγραφή XML για την αποστολή του Δείκτη Επικινδυνότητας ΘΕΜΑ 14 ΘΕΜΑ 15 ΜΟΝΑΔΕΣ 4 ΜΟΝΑΔΕΣ 5 Μια εφαρμογή λογισμικού εκτελεί μια λειτουργία η οποία δημιουργεί N τυχαία σημεία (x,y) στο επίπεδο, με τρόπο ώστε κανένα ζεύγος σημείων να μην απέχει λιγότερο από S και τα τοποθετεί σε αποθήκη δεδομένων Να δώσετε ένα διάγραμμα ροής δεδομένων (θέμα 14) για τη λειτουργία αυτή, καθώς και το αντίστοιχο ΔΔΠ (θέμα 15) Συμβουλή: δεν απαιτούνται περισσότεροι από 3 και λιγότεροι από 2 μετασχηματισμοί Για τη λειτουργία της γεννήτριας τυχαίων αριθμών απαιτείται ένας αριθμός Seed που την αρχικοποιεί ΑΠΑΝΤΗΣΗ Μια λύση με τρεις μετασχηματισμούς είναι η ακόλουθη: 7

Seed M1 Random number generator RandomΧ, RandomY S Χ, Υ M2 Ελεγχος απόστασης Σηµεία που έχουν δηµιουργηθεί Χ,Υ, Flag Χ, Υ M3 Καταχώρηση σηµείου Και το αντίστοιχο ΔΔΠ RunM2 S RandomX,Y X,Y S, X, Y, RandomX,Y X,Y,Flag X,Y,Flag Get S RunM1 Get X,Y Calc X,Y, Flag RunM3 Seed RandomX,Y Seed X,Y,Flag X,Y X,Y Get Seed Calc RandomX,Y Calc X,Y Put X,Y ΘΕΜΑ 16 ΜΟΝΑΔΕΣ 5 Συνταγή για Αρνί με κουσκούς Αρχικά, ψιλοκόβουμε τις ντομάτες Στη συνέχεια σοτάρουμε στο μισό λάδι τις μερίδες του αρνιού Όταν πιάσει κρούστα από όλες τις πλευρές, προσθέτουμε την ντομάτα Συνεχίζουμε προσθέτοντας τον ντοματοπελτέ, τους κόκκους πιπεριού και το αλάτι Μετά ρίχνουμε όλο το νερό και αφήνουμε το κρέας να βράσει στη σάλτσα του για 30 λεπτά Παράλληλα, ψιλοκόβουμε τα κρεμμύδια και τα σοτάρουμε για λίγο στο λάδι Στα κρεμμύδια, ρίχνουμε και το κουσκούσι για να σοταριστεί λίγο και να πάρει γεύση Το ανακατεύουμε καλά και το αποσύρουμε σύντομα από τη φωτιά Επίσης, προθερμαίνουμε το φούρνο στους 180 βαθμούς Σε ένα ταψί ή πυρέξ, χύνουμε το ζωμό από το αρνί και στη συνέχεια, προσθέτουμε το κουσκούσι και τα κρεμμύδια Τοποθετούμε και τις μερίδες του αρνιού και ανακατεύουμε Ψήνουμε στους 180 βαθμούς για 45 λεπτά Όταν βγάλουμε το φαγητό από το φούρνο, σκεπάζουμε το πυρέξ με μία πετσέτα για να μη στεγνώσει το κουσκούσι και να φουσκώσει σε όλο του το μεγαλείο Συνοδεύεται τέλεια με μία σάλτσα φτιαγμένη από στραγγιστό γιαούρτι, λίγο ελαιόλαδο, αλάτι και μπούκοβο Φτιάξτε το Διάγραμμα Ροής Δεδομένων (ΔΡΔ) που αντιστοιχεί στην παραπάνω συνταγή 8

Ντοµάτα Κόψιµο ντοµάτας Ψιλοκοµµένη ντοµάτα Μάγειρας Ντοµατοπελτές, κόκκοι πιπεριού, αλάτι, νερό Ανάµιξη Μάγειρας Μερίδες αρνιού Μίγµα Κρεµµύδι Σωτάρισµα αρνιού Κρουστοποιηµένο αρνί Βράσιµο Κόψιµο κρεµµυδιών Ψιλοκοµµένο κρεµµύδι Ζωµός, αρνί Σωτάρισµα και ανάµιξη Μίγµα Ανάµιξη Αρνί µε κουσκούς Ψήσιµο Κουσκούς Ψηµένο αρνί µε κουσκούς Μάγειρας πετσέτα Φυσκωµένο αρνί µε κουσκούς Φύσκωµα ΘΕΜΑ 17 ΜΟΝΑΔΕΣ 6 Σε ένα ξενοδοχείο λειτουργεί η εφαρμογή «Reservations» η οποία διαχειρίζεται τις κρατήσεις δωματίων του ξενοδοχείου Ένας πελάτης μέσω του υπαλλήλου του τμήματος κρατήσεων μπορεί να ζητήσει μια κράτηση για ένα ή περισσότερα δωμάτια για συγκεκριμένες ημερομηνίες και για καθορισμένο αριθμό ατόμων Αν το ξενοδοχείο έχει ελεύθερα δωμάτια, γίνεται η κράτηση με εγγύηση τον αριθμό της πιστωτικής κάρτας του πελάτη Η κράτηση αυτή διατηρείται για 15 ημέρες από την ημερομηνία που έγινε Μετά ο πελάτης πρέπει να πληρώσει προκαταβολή προκειμένου να συνεχίσει να ισχύει η κράτηση, αλλιώς η κράτηση χάνεται (ακυρώνεται αυτόματα) Αν το ξενοδοχείο δεν έχει ελεύθερα δωμάτια τη χρονική στιγμή της αίτησης του πελάτη, τότε η αίτηση μπαίνει σε λίστα αναμονής μέχρι να υπάρξουν ελεύθερα δωμάτια από ακυρωμένες κρατήσεις Ζητούμενο Α: Σχεδιάστε το Διάγραμμα Ροής Δεδομένων για την παραπάνω εφαρμογή για τα επίπεδα 0 και 1 Ζητούμενο Β: Σχεδιάστε το Διάγραμμα Μετάβασης Καταστάσεων για την οντότητα «Κράτηση» 9

10

ΘΕΜΑ 18 ΜΟΝΑΔΕΣ 6 Διαθέτουμε δύο δοχεία, χωρητικότητας ακριβώς 3 και 5 λίτρων Τα δοχεία δεν είναι βαθμονομημένα Έχουμε επίσης μία βρύση και έναν νεροχύτη Οι ενέργειες που μπορούμε να εκτελέσουμε είναι οι εξής: Πλήρες γέμισμα ενός δοχείου από τη βρύση Πλήρες άδειασμα ενός δοχείου στο νεροχύτη Μετακίνηση νερού από το ένα δοχείο στο άλλο, μέχρι είτε να αδειάσει το ένα είτε να γεμίσει το άλλο Κατασκευάστε ένα γράφο, του οποίου κορυφές είναι οι διάφορες καταστάσεις των δοχείων Κάθε κορυφή θα φέρει μια ετικέτα της μορφής [Χ,Υ], όπου Χ το περιεχόμενο του μικρού δοχείου, Χ {0,1,2,3 και Υ το περιεχόμενο του μεγάλου δοχείου, Υ {0,1,2,3,4,5,6 Δύο κορυφές Α και Β θα συνδέονται με μια κατευθυνόμενη ακμή, εάν είναι δυνατόν να πάμε από την κατάσταση Α στην κατάσταση Β με μία από τις έγκυρες ενέργειες Παρακάτω φαίνονται 4 κορυφές του γράφου, μαζί με τις μεταξύ τους ακμές [0,0] [3,0] Εναλλακτικά, και για λόγους οικονομίας χώρου, συνίσταται να περιγράψετε το γράφο με λίστες γειτνίασης, δίνοντας για κάθε κορυφή του τις κορυφές- προορισμούς των εξερχόμενων ακμών Για παράδειγμα, από την κορυφή [0,0] ξεκινούν ακμές για τις κορυφές [0,5] και [3,0]: [0,0]à [0,5], [3,0] Σημείωση: Το πλήθος των κόμβων του γράφου είναι 24, για τις 4 διαφορετικές ποσότητες που μπορεί να φέρει το μικρό δοχείο επί τις 6 διαφορετικές ποσότητες που μπορεί να φέρει το μεγάλο δοχείο Γράψτε όσες περισσότερες από τις καταστάσεις μπορείτε ΑΠΑΝΤΗΣΗ Χρησιμοποιήστε το χώρο στο φύλο απαντήσεων για να δώσετε την απάντησή σας Για λόγους σαφήνειας και οικονομίας χώρου δίνονται οι ακμές με τη μορφή λίστας γειτνίασης Μάλιστα οι λίστες δίνονται με λεξικογραφική ταξινόμηση Έχουμε λοιπόν: [0,0] à [0,5],[3,0] [0,1] à [0,0], [0,5], [1,0], [3,1] [0,2] à [0,0], [0,5], [2,0], [3,2] [0,3] à [0,0], [0,5], [3,0], [3,3] [0,4] à [0,0], [0,5], [3,1], [3,4] [0,5] à [0,0], [3,2], [3,5] [1,0] à [0,0], [0,1], [1,5], [3,0] [1,1] à [0,1], [0,2], [1,0], [1,5], [2,0], [3,1] [1,2] à [0,2], [0,3], [1,0], [1,5], [3,0], [3,2] [1,3] à [0,3], [0,4], [1,0], [1,5], [3,1], [3,3] [1,4] à [0,4], [0,5], [1,0], [1,5], [3,2], [3,4] [1,5] à [0,5], [1,0], [3,3], [3,5] [2,0] à [0,0], [0,2], [2,5], [3,0] [2,1] à [0,1], [0,3], [2,0], [2,5], [3,0], [3,1] [2,2] à [0,2], [0,4], [2,0], [2,5], [3,1], [3,2] [2,3] à [0,3], [0,5], [2,0], [2,5], [3,2], [3,3] [2,4] à [0,4], [1,5], [2,0], [2,5], [3,3], [3,4] [2,5] à [0,5], [2,0], [3,4], [3,5] [3,0] à [0,0], [0,3], [3,5] [0,5] [3,2] 11

[3,1] à [0,1], [0,4], [3,0], [3,5] [3,2] à [0,2], [0,5], [3,0], [3,5] [3,3] à [0,3], [1,5], [3,0], [3,5] [3,4] à [0,4], [2,5], [3,0], [3,5] [3,5] à [0,3], [3,0] ΘΕΜΑ 19 ΜΟΝΑΔΕΣ 4 Συνέχεια του προηγούμενου θέματος Ξεκινώντας από τον κόμβο [0,0], βρείτε μια διαδρομή μέχρι κάποιον κόμβο της μορφής [1,x] ή [x,1], όπου x οποιαδήποτε τιμή, δηλαδή φτάστε σε μια κατάσταση όπου σε ένα από τα δοχεία υπάρχει ακριβώς ένα λίτρο νερό αδιαφορώντας για το πόσο υπάρχει στο άλλο Χρησιμοποιήστε τους αλγόριθμους depth first search και breadth first search Η επιλογή των γειτόνων ενός κόμβου να γίνεται και από τους δύο αλγορίθμους λεξικογραφικά, πχ για τον κόμβο [0,0] πρώτα εξετάστε τον [0,5] και μετά τον [3,0] ΑΠΑΝΤΗΣΗ Ξεκινώντας από τον κόμβο [0,0] με depth- first search και ακολουθώντας τις ακμές με λεξικογραφική προτεραιότητα, αποφεύγοντας τους βρόχους (γκρι κόμβους) αλλά και κόμβους που έχουμε ήδη επισκεφθεί, έχουμε την εξής διάσχιση: [0,0] à [0,5] à [3,2] à [0,2] à [2,0] à [2,5] à [3,4] à [0,4] à [3,1] Λύση! Ουσιαστικά ο depth- first search βρήκε μια διαδρομή στο γράφο χωρίς να χρειαστεί να υπαναχωρήσει σε κανένα σημείο Για να περιγράψουμε την εφαρμογή του breadth- first search, θα δίνουμε σε κάθε βήμα το μέτωπο αναζήτησης (γκρι κόμβοι) Ο πρώτος κόμβος του μετώπου θα εξάγεται σε κάθε βήμα (θα γίνεται μαύρος), ενώ οι λευκοί γειτονικοί του θα εισέρχονται στο τέλος του μετώπου, έχοντας γίνει και αυτοί γκρι (το μέτωπο λειτουργεί ως ουρά) Κόμβοι οι οποίοι βρίσκονται ήδη στο μέτωπο (γκρι κόμβοι) ή έχουν ήδη βγει από αυτό (μαύροι κόμβοι) θα αγνοούνται Έχουμε λοιπόν: [0,0] [0,5],[3,0] [3,0], [3,2], [3,5] [3,2], [3,5], [0,3] [3,5], [0,3], [0,2], [3,0] [0,3], [0,2], [3,0] [0,2], [3,0], [3,3] [3,0], [3,3], [2,0] [3,3], [2,0] [2,0], [1,5] [1,5], [2,5] è Λύση! Η διαδρομή είναι [0,0] à [3,0] à [0,3] à [3,3] à [1,5], η οποία είναι σημαντικά μικρότερη από αυτή που βρήκε ο depth first search (ουσιαστικά είναι η συντομότερη δυνατή λύση) 12

ΘΕΜΑ 20 ΜΟΝΑΔΕΣ 3 Έστω η συνάρτηση f 1 (n) της οποίας ο ψευδοκώδικας δίνεται παρακάτω: f 1 (n) 1 if n > 2 2 then return (f 1 (n 1) + f 1 (n 2)) mod n 3 else return 2 Εξηγείστε με ποιον τρόπο θα μπορούσε να υλοποιηθεί η συνάρτηση f 1 ώστε να έχει χρόνο εκτέλεσης O(n) ΑΠΑΝΤΗΣΗ Χρησιμοποιήστε το χώρο στο φύλο απαντήσεων για να δώσετε την απάντησή σας Θα χρησιμοποιήσουμε δυναμικό προγραμματισμό Μπορεί να εφαρμοστεί μια προσέγγιση από κάτω- προς- τα- πάνω (bottom- up) ή από- πάνω- προς- τα- κάτω (top- down) Έστω, F 1 [n] ένας πίνακας που αρχικά έχει μηδενικές τιμές Αρχικά, θέτουμε F 1 [1] = F 1 [2] = 2 Έπειτα, για κάθε i = 3,, n κάνουμε τον υπολογισμό F 1 [i] = F 1 [i 1]+F 1 [i 2] mod n Αυτή η διαδικασία απαιτεί O(n) χρόνο, ενώ η τιμή f 1 (n) έχει υπολογιστεί, αφού f 1 (n)= F 1 [n] ΘΕΜΑ 21 ΜΟΝΑΔΕΣ 4 Ορίστε το πρόβλημα της εύρεσης του ελάχιστου μονοπατιού (shortest path) με αναδρομικό τρόπο ΑΠΑΝΤΗΣΗ Χρησιμοποιήστε το χώρο στο φύλο απαντήσεων για να δώσετε την απάντησή σας Ένας αναδρομικός ορισμός για το πρόβλημα της εύρεσης του ελάχιστου μονοπατιού θα ήταν ως εξής: Έστω ο γράφος G με κορυφές V=1,,n και ακμές E V V με βάρη w ij Tο ελάχιστο μονοπάτι S(s, t) από τον κόμβο s στον κόμβο t ορίζεται από την αναδρομική συνάρτηση R(s, t, A) ως εξής: R(s, t, A) = min i S {R(s, i, A \ {t + w it S(s, t) = R(s, t, V \ {t) 13

ΘΕΜΑ 22 ΜΟΝΑΔΕΣ 6 Έστω ο παρακάτω γράφος με τα αντίστοιχα βάρη στις ακμές του Επίσης, οι π- τιμές και οι d- τιμές που έχουν υπολογιστεί στα πλαίσια του αλγόριθμου του Dijkstra Θα μπορούσαν αυτές οι τιμές να αποτελούν αποτέλεσμα ορθής εκτέλεσης του αλγορίθμου του Dijkstra στον παρακάτω γράφο; Εάν όχι, για ποιό λόγο; Εάν ναι, είναι αυτές οι τιμές οι μοναδικές ορθές τιμές που θα μπορούσαν να προκύψουν; d=5 π=s d=8 π=a a 3 b d=0 π=nil 5 7 d=8 π=s 3 d=11 π=c s 8 c 3 d 7 d=7 π=s 2 d=10 π=c e 4 f ΑΠΑΝΤΗΣΗ Οι π- τιμές και οι d- τιμές που φαίνονται παραπάνω αποτελούν αποτέλεσμα ορθής εκτέλεσης του αλγορίθμου του Dijkstra στον παραπάνω γράφο Υπάρχει ένα ακόμα πιθανό αποτέλεσμα: ο κόμβος d μπορεί να έχει π- τιμή ίση με b Αυτό γίνεται διότι οι κόμβοι b και c έχουν την ίδια d- τιμή, και επομένως ήταν και οι δύο ταυτόχρονα στην ουρά προτεραιότητας με την ίδια προτεραιότητα, όταν ο κόμβος c επιστράφηκε από την EXTRACTMIN κλήση Έτσι, θα μπορούσε να είχε επιστραφεί ο κόμβος c αντί του κόμβου b ΘΕΜΑ 23 ΜΟΝΑΔΕΣ 3 Ποια η πολυπλοκότητα της παρακάτω συνάρτησης, η οποία υπολογίζει ακέραιες δυνάμεις (τόσο θετικές όσο και αρνητικές) πραγματικών αριθμών; double power(int x, int n) { if (n==0) return 1; if (n==1) return x; if (n>0) return power(x,n/2)*power(x,n-n/2); return 1/power(x,-n); Α Β Γ Δ E O(n 2 ) O(2 n ) O(n) O(x n ) O(nlogn) 14

ΘΕΜΑ 24 ΜΟΝΑΔΕΣ 4 Ποιοι από τους παρακάτω αλγορίθμους ταξινόμησης δεν μπορούν να εφαρμοστούν χωρίς σοβαρές τροποποιήσεις (οι οποίες ωστόσο έχουν ως συνέπεια την αυξημένη πολυπλοκότητα) εάν τα προς ταξινόμηση στοιχεία είναι αποθηκευμένα σε συνδεδεμένη λίστα αντί για πίνακα; ΑΠΑΝΤΗΣΗ (επιλέξτε όσες από τις παρακάτω επιλογές θεωρείτε σωστές) Α Β Γ Δ E Insertion sort Mergesort Bubblesort Heapsort Quicksort Η λειτουργία του mergesort βασίζεται στην άμεση διάσπαση ενός (υπο)πίνακα σε δύο ίσα κομμάτια, κάτι που δεν είναι δυνατό να γίνει αποδοτικά με λίστα Η λειτουργία των σωρών βασίζεται στην πρόσβαση των "γονέων" ενός κόμβου, οι οποίοι βρίσκονται σε συγκεκριμένη θέση μέσα στο δένδρο, κάτι που επίσης δεν είναι δυνατό να γίνει αποδοτικά με λίστα ΘΕΜΑ 25 ΜΟΝΑΔΕΣ 4 Μια μονάδα λογισμικού μετρά το πλήθος των σημείων του επιπέδου που βρίσκονται εντός ή επί των ορίων δακτυλίου με κέντρο την αρχή των αξόνων και ακτίνες R1 και R2 με R1>R2 όπως φαίνεται στο σχήμα Η μονάδα δέχεται ως παραμέτρους τα R1, R2, x[n], y[n] όπου x και y πίνακες με τις συντεταγμένες N σημείων Προκειμένου να γίνει ο έλεγχος της μονάδας αυτής με την τεχνική του «μαύρου κουτιού» καλείστε να περιγράψετε 3 κλάσεις εγκύρων ισοδυνάμων τιμών εισόδου και 1 κλάση άκυρων ισοδυνάμων τιμών εισόδου Υπενθυμίζεται ότι το σημείο x, y ανήκει στην περιφέρεια ενός κύκλου ακτίνας R όταν ισχύει x + y 2 = R 2 R1 R2 (x,y) ΑΠΑΝΤΗΣΗ Εγκυρες 1 r1>r2, (x,y) επί του κύκλου r1 2 r1>r2, (x,y) εντός του δακτυλίου 3 r1>r2, (x,y) επί του κύκλου r2 Ακυρες 1 r1<=r2, οποιαδήποτε άλλα δεδομένα 15

ΘΕΜΑ 26 ΜΟΝΑΔΕΣ 6 Να επαναλάβετε το θέμα ΥΥ δίνοντας αυτή τη φορά και 3 κλάσεις άκυρων ισοδυνάμων τιμών εισόδου θεωρώντας ότι η προς έλεγχο μονάδα λογισμικού δέχεται επιπλέον ως παράμετρο μια τιμή e η οποία ορίζει την «ανοχή» με την οποία ένα σημείο θεωρείται ότι ανήκει επί της περιφέρειας ενός κύκλου ΑΠΑΝΤΗΣΗ Εγκυρες 1 r1>r2, 0<e<r1- r2, (x,y) επί του κύκλου r1 2 r1>r2, 0<e<r1- r2, (x,y) εντός του δακτυλίου 3 r1>r2, 0<e<r1- r2, (x,y) επί του κύκλου r2 Ακυρες 1 r1<=r2, οποιαδήποτε άλλα δεδομένα 2 e<0, οποιαδήποτε άλλα δεδομένα 3 r1>r2, e>r1- r2, οποιαδήποτε άλλα δεδομένα ΘΕΜΑ 28 ΜΟΝΑΔΕΣ 3 Έστω ένα δυαδικό δένδρο αναζήτησης (ΔΔΑ), το οποίο ορίζεται με βάση την παρακάτω δομή δεδομένων: struct node { int key; struct node *left; struct node *right; ; Έστω ότι το ΔΔΑ περιλαμβάνει τα κλειδιά 1, 2, 3, 4, 5, 6 και 7, με το κλειδί 4 στη ρίζα, ενώ όλα τα κλαδιά του δένδρου έχουν το ίδιο βάθος Δίνονται οι παρακάτω τέσσερις συναρτήσεις: void print1(struct node *n) { while (n) { print1(n->left); print1(n->right); printf("%d",n->key); void print2(struct node *n) { while (n) { printf("%d",n->key); print2(n->left); print2(n->right); void print3(struct node *n) { while (n) { print3(n->left); printf("%d",n->key); print3(n->right); 16

void print4(struct node *n) { while (n) { print4(n->right); printf("%d",n->key); print4(n->right); Αντιστοιχείστε τις συναρτήσεις print1, print2, print3 και print4 στις παρακάτω τέσσερις εξόδους στην οθόνη ΑΠΑΝΤΗΣΗ (σημειώστε τη συνάρτηση που αντιστοιχεί σε κάθε έξοδο) Α Β Γ Δ 1234567 7654321 1325764 4213657 print3 print4 print1 print2 ΘΕΜΑ 29 ΜΟΝΑΔΕΣ 4 Έστω μια απλά συνδεδεμένη λίστα που ορίζεται από τη δομή: struct node { int key; struct node *next; ; Έστω επίσης η παρακάτω συνάρτηση η οποία ταξινομεί τα στοιχεία της συνδεδεμένης λίστας σε αύξουσα σειρά χρησιμοποιώντας ταξινόμηση φυσαλίδας (bubble sort) Από τη συνάρτηση που ακολουθεί λείπει μία εντολή (αυτή που έχει αντικατασταθεί με λατινικά ερωτηματικά) Επιλέξτε τη σωστή από τις διαθέσιμες επιλογές void bubble_sort(struct node* list) { struct node *t=list; int i,j,k,c=0; while (t) { c++; t=t->next; for(i=1;i<c;i++) { t=list; for(j=1;j<i-1;j++) if (t->key>t->next->key) { k=t->key;???????????????????? t->next->key=k; Α Β Γ Δ t->next->key = t->key=; t->key=list->key; t->key= t->next->key; t->key = c+1; 17