Θέματα εξετάσεων

Διομήδης Σπινέλλης
Τμήμα Διοικητικής Επιστήμης και Τεχνολογίας
Οικονομικό Πανεπιστήμιο Αθηνών
dds@aueb.gr

Εργαστήριο αυτοαξιολόγησης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Τμήμα Μαθηματικών

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

(Εργαστήριο αυτοαξιολόγησης)
Διδάσκων: Διομήδης Σπινέλλης 15 Απριλίου 1997

Θέμα 1ο:

  1. Για κάθε ένα από τα παρακάτω είδη πινάκων να γραφεί σε ψευδοκώδικα μια συνάρτηση η οποία δέ÷εται ως όρισμα έναν πίνακα Ν*Ν και να επιστρέφει αληθές η ψευδές ανάλογα με τον αν ο πίνακας ανήκει στο συγκεκριμένο είδος:

Θέμα 2ο:

  1. Ορίστε σε Pascal τις διαδικασίες και συναρτήσεις πρόσβασης σε μια στοίβα συμβολοσειρών ως αφηρημένο τύπο (μην τις υλοποιήσετε!)
  2. Με δεδομένες τις παραπάνω να γραφεί πρόγραμμα το οποίο να διαβάζει μια σειρά από λέξεις από το ÷ρήστη μέ÷ρι να συναντήσει τελεία και να τις τυπώνει με ανάποδη σειρά.

Θέμα 3ο:

  1. Ορίστε μια συνδεδεμένη λίστα ÷αρακτήρων σε Pascal.
  2. Υλοποιήστε συνάρτηση η οποία δέ÷εται ως όρισμα την παραπάνω συνδεδεμένη λίστα και επιστρέφει τον αριθμό των στοι÷είων που την απαρτίζουν.

Θέμα 4ο:

  1. Ορίστε ένα δυαδικό δένδρο ακεραίων σε Pascal.
  2. Υλοποιήστε συνάρτηση η οποία να δέ÷εται ως όρισμα τον παραπάνω δένδρο και έναν ακέραιο και να επιστρέφει αληθές αν ο ακέραιος αυτός αποτελεί στοι÷είο του δένδρου.
  3. Υπολογίστε πόσους το πολύ κόμβους μπορεί να έ÷ει ένα δένδρο βαθμού d και ύψους h.


Διάρκεια εξέτασης 1.5 ώρα. Καλή επιτυ÷ία!

Εξεταστική περιόδος Ιουνίου 1997

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Τμήμα Μαθηματικών
ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Διδάσκων: Διομήδης Σπινέλλης

Εξεταστική περίοδος

Ιουνίου 1997

Θέμα 1ο:

Να υλοποιηθεί σε Pascal ο αφηρημένος τύπος της στοίβας λογικών τιμών σύμφωνα με τις παρακάτω συναρτήσεις:

     { Αρχικοποιείται η στοίβα }
          procedure stackInitialize; 
     { Το στοιχείο i εισάγεται στην κορυφή της στοίβας }
          procedure stackPush(i :boolean); 
     { Το στοιχείο από την κορυφή της στοίβας αφαιρείται και επιστρέφεται }
          function stackPop : boolean; 
     { Επιστρέφεται αληθές αν η στοίβα είναι κενή }
          function stackIsEmpty : bool;

Η στοίβα να φυλάσσεται σε πίνακα 2000 θέσεων.

Θέμα 2ο:

  1. Ορίστε ποιο γράφο ονομάζουμε συνεκτικό και ποιο μη κυκλικό.
  2. Σχεδιάστε γραφικά ένα συνεκτικό, μη κυκλικό γράφο με 8 κόμβους και 7 ακμές.
  3. Ποιες από τις παρακάτω προτάσεις είναι αληθείς για έναν συνεκτικό μη κυκλικό γράφο με ν > 0 κόμβους:

  1. Αν διαγραφεί οποιαδήποτε ακμή ο γράφος θα πάψει να είναι συνεκτικός.
  2. Δύο διαφορετικοί κόμβοι συνδέονται από τουλάχιστον μια απλή διαδρομή.
  3. Ο γράφος περιέχει ν + 1 ακμές.
  4. Αν προστεθεί οποιαδήποτε ακμή ο γράφος θα αποκτήσει μια τουλάχιστον κυκλική διαδρομή.
  5. Ο γράφος περιέχει λιγότερες από 2ν ακμές.
  6. Αν προστεθεί οποιαδήποτε ακμή ο γράφος θα πάψει να είναι συνεκτικός.
  7. Δύο διαφορετικοί κόμβοι συνδέονται από μια και μόνο μια απλή διαδρομή.
  8. Ο γράφος περιέχει ν - 1 ακμές.
  9. Αν διαγραφεί οποιαδήποτε ακμή ο γράφος θα αποκτήσει μια τουλάχιστον κυκλική διαδρομή.

Θέμα 3ο:

  1. Ορίστε μια διπλά συνδεδεμένη λίστα ακεραίων σε Pascal.
  2. Υλοποιήστε συνάρτηση η οποία δέχεται ως όρισμα την παραπάνω διπλά συνδεδεμένη λίστα και ένα ακέραιο αριθμό που υπάρχει στη λίστα και επιστρέφει το μέσο όρο: του αριθμού αυτού, του αριθμού που προηγείται από αυτόν στη λίστα και του αριθμού που τον ακολουθεί. Αν δεν υπάρχει προηγούμενος ή επόμενος αριθμός ο μέσος όρος να υπολογιστεί από τους υπόλοιπους αριθμούς.

Θέμα 4ο:

Τα ονόματα των κατόχων και τα αντίστοιχα τηλέφωνα των 5.328.690 συνδέσεων που παρέχει ο ΟΤΕ πρέπει να καταχωρηθούν σε δομή δεδομένων που να επιτρέπει την ταχύτερη δυνατή εύρεση του τηλεφώνου με βάση το όνομα. Ποια δομή δεδομένων θα χρησιμοποιήσετε; Ποια δομή δεδομένων θα χρησιμοποιήσετε αν επιπλέον απαιτείται η άμεση ταξινομημένη ανάκτηση των ονομάτων για την εκτύπωση των τηλεφωνικών καταλόγων.
Διάρκεια εξέτασης 2 ώρες Καλή επιτυχία!

Εξεταστική περιόδος Σεπτεμβρίου 1997

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Τμήμα Μαθηματικών
ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Διδάσκων: Διομήδης Σπινέλλης

Εξεταστική περίοδος

Σεπτεμβρίου 1997

Θέμα 1ο:

Να υλοποιηθεί σε Pascal ο αφηρημένος τύπος της συνδεδεμένης λίστας χαρακτήρων σύμφωνα με τις παρακάτω συναρτήσεις:

     { Ορισμός του τύπου της συνδεδεμένης λίστας }
          type
              charList = ...
     { Επιστρέφεται μια άδεια συνδεδεμένη λίστα }
          function newCharList : charList; 
     { Επιστρέφεται μια συνδεδεμένη λίστα με το στοιχείο c στην αρχή της }
          function addCharList(l : charList; c : char) : charList; 
     { Επιστρέφεται μια συνδεδεμένη λίστα με το πρώτο στοιχείο διαγραμμένο. Κατά
        την επιστροφή η μεταβλητή c περιέχει την τιμή του. }
          function delCharListHead(l : charList; var c : char) : charList; 
     { Επιστρέφεται ένας δείκτης στο στοιχείο της λίστας που έχει την τιμή c }
          function searchCharList(l : charList; c : char) : charList; 
     { Επιστρέφεται αληθές αν η λίστα είναι κενή }
          function isEmtyCharList(l : charList) : boolean;

Θέμα 2ο:

  1. Τι ονομάζουμε βαθμό και τι ύψος ενός δένδρου;
  2. Πότε ένα δένδρο καλείται πλήρες;
  3. Αποδείξτε τις παρακάτω προτάσεις. Στην απόδειξη μπορεί να σας φανεί χρήσιμη η μέθοδος της επαγωγής.

  1. Ένα πλήρες δένδρο βαθμού d και ύψους h θα έχει κόμβους.
  2. Ένα πλήρες δυαδικό δένδρο ύψους h θα έχει κόμβους.
  3. Ένα πλήρες δυαδικό δένδρο με n κόμβους θα έχει ύψος.

Θέμα 3ο:

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

Θέμα 4ο:

  1. Περιγράψτε με ψευδοκώδικα τη διαδικασία της δυαδικής αναζήτησης για την εύρεση μιας εγγραφής σε ταξινομημένο πίνακα.
  2. Αν ο πίνακας έχει Ν στοιχεία δώστε τον ελάχιστο και το μέγιστο αριθμό συγκρίσεων που μπορεί να απαιτηθούν για την παραπάνω διαδικασία αναζήτησης.

.
Διάρκεια εξέτασης 2.5 ώρες Καλή επιτυχία!