Ενοτητα 1 Flashcards

1
Q

Να δώσετε τον ορισμό της δομής δεδομένων «Στοίβα»,

A

Απάντηση:

Στοίβα ονομάζεται μια δομή δεδομένων, στην οποία το σύνολο των στοιχείων της είναι διατεταγμένο με τέτοιο τρόπο, ώστε τα στοιχεία που βρίσκονται στην κορυφή της στοίβας λαμβάνονται πρώτα, ενώ αυτά που βρίσκονται στο βάθος της στοίβας λαμβάνονται τελευταία.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Ποια μέθοδο επεξεργασίας δεδομένων χρησιμοποιεί η δομή δεδομένων «Στοίβα»;
A

Απάντηση:

Τη μέθοδο Τελευταίο Μέσα, Πρώτο Έξω, ή αλλιώς LIFO, από τα αρχικά των λέξεων «Last In First Out». Κατά τη μέθοδο αυτήν το δεδομένο που εισάγεται τελευταίο και βρίσκεται στην κορυφή της στοίβας, είναι αυτό που εξάγεται πρώτο. Αντίθετα, το δεδομένο που βρίσκεται στο βάθος της στοίβας είναι και αυτό που εξάγεται τελευταίο,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. α. Πώς ονομάζονται οι κύριες λειτουργίες που εκτελούνται στη δομή δεδομένων «Στοίβα»;
    β. Ποια λειτουργία επιτελούν και τι πρέπει να ελέγχεται πριν την εκτέλεσή τους
A

Απάντηση:

Στη δομή δεδομένων «Στοίβα» χρησιμοποιούνται δύο λειτουργίες

•η ώθηση (push) με την οποία εισάγουμε ένα στοιχείο στην κορυφή της στοίβας και

•η απώθηση (pop) με την οποία αφαιρούμε ένα στοιχείο από την κορυφή της στοίβας
Β Βλέπε 230η και 231η ερώτηση θεωρίας.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Τι πρέπει να προσέχουμε κατά την εκτέλεση της λειτουργίας της ώθησης ενός στοιχείου στη «Στοίβα 》
A

Κατά την εκτέλεση της λειτουργίας της ώθησης ενός στοιχείου στη στοίβα, πρέπει να εξετάζουμε αν αυτή είναι γεμάτη δηλαδή αν υπάρχει διαθέσιμος χώρος, ώστε να μπορούμε να τοποθετήσουμε το στοιχείο σε αυτήν. Διαφορετικά, αν η στοίβα είναι γεμάτη και προσπαθήσουμε να εισαγάγουμε ένα στοιχείο σε αυτήν, τότε λέμε ότι συμβαίνει υπερχείλιση της στοίβας

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Τι πρέπει να προσέχουμε κατά την εκτέλεση της λειτουργίας της απώθησης ενός στοιχείου από τη «Στοίβα»
A

Κατα την εκτέλεση της λειτουργίας της απώθησης ενός στοιχείου από τη στοίβα, πρέπει να εξετάζουμε αν υπάρχει ένα τουλάχιστον στοιχείο σε αυτήν για να εξαχθεί (να μην είναι κενή). Διαφορετικά, αν η στοίβα είναι κενή και προσπαθήσουμε να αφαιρέσουμε ένα στοιχείο από αυτήν, τότε λέμε ότι συμβαίνει υποχείλιση της στοίβας.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Να περιγράψετε την υλοποίηση «Στοίβας» με τη βοήθεια μονοδιάστατου πίνακα.
A

Απάντηση:

Μια στοίβα μπορούμε να την υλοποιήσουμε με τη βοήθεια ενός μονοδιάστατου πίνακα Ν θέσεων. Για να τη διαχειριστούμε, χρειαζόμαστε μία βοηθητική μεταβλητή-δείκτη με την ονομασία top, η οποία δείχνει το στοιχείο που τοποθετήθηκε τελευταίο στη στοίβα, δηλαδή δείχνει το στοιχείο που υπάρχει στην κορυφή της. Στο διπλανό σχήμα χρησιμοποιούμε έναν πίνακα Ν θέσεων για τη δημιουργία μιας στοίβας, η οποία έχει μέσα δύο στοιχεία. Η μεταβλητή τορ έχει την τιμή 2 και δείχνει την κορυφή της στοίβας.

Ν []
• []
• []
3[]
2[Β] <-top=2
1[Α]
Υλοποιηση στοίβας με πίνακα

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Να δώσετε τον ορισμό της δομής δεδομένων «Ουρά».
A

Ουρά ονομάζεται μια δομή δεδομένων στην οποία το σύνολο των στοιχείων είναι διατεταγμένο με τέτοιο τρόπο, ώστε τα στοιχεία που τοποθετήθηκαν πρώτα στην ουρά να λαμβάνονται επίσης πρώτα.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Ποια μέθοδο επεξεργασίας δεδομένων χρησιμοποιεί η δομή δεδομένων «Ουρά»;
A

Απάντηση:

Τη μέθοδο Πρώτο Μέσα, Πρώτο Έξω, ή αλλιώς FIFO, από τα αρχικά των λέξεων «First In First Out». Κατά τη μέθοδο αυτήν το δεδομένο που εισάγεται πρώτο, είναι αυτό που εξάγεται πρώτο. Αντίθετα, το δεδομένο που βρίσκεται στο τέλος της ουράς είναι και αυτό που εξάγεται τελευταίο.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Ποιες είναι οι κύριες λειτουργίες στη δομή δεδομένων «Ουρά»;
A

Στη δομή δεδομένων ουρά χρησιμοποιούνται δύο λειτουργίες:

•η εισαγωγή (enqueue) ενός στοιχείου στο πίσω άκρο της ουράς και

•η εξαγωγή (dequeue) ενός στοιχείου από το μπροστινό άκρο της ουράς.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Τι πρέπει να προσέχουμε κατά την εκτέλεση της λειτουργίας της εισαγωγής ενός στοιχείου στην «Ουρά》
A

Κατά την εκτέλεση της λειτουργίας της εισαγωγής ενός στοιχείου στην ουρά, πρέπει να εξετάζουμε αν υπάρχει διαθέσιμος χώρος στην ουρά (να μην είναι γεμάτη), για να τοποθετήσουμε το στοιχείο σε αυτήν.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Τι πρέπει να προσέχουμε κατά την εκτέλεση της λειτουργίας της εξαγωγής ενός στοιχείου από την «Ουρά»;
A

Απάντηση:

Κατά την εκτέλεση της λειτουργίας της εξαγωγής ενός στοιχείου από την ουρά πρέπει να εξετάζουμε αν υπάρχει ένα τουλάχιστον στοιχείο σε αυτήν για να εξαχθεί, δηλαδή η ουρά να μην είναι άδεια.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Να εξηγήσετε πώς γίνεται η υλοποίηση της δομής δεδομένων «Ουρά» με τη βοήθεια ενός μονοδιάστατου πίνακα.
A

Τη δομή δεδομένων «Ουρά» μπορούμε να την υλοποιήσουμε με τη βοήθεια ενός μονοδιάστατου πίνακα Ν θέσεων και για να τη διαχειριστούμε, θα χρησιμοποιήσουμε δύο δείκτες: τον δείκτη «εμπρός (front)», που δείχνει το πρώτο στοιχείο της ουράς, και τον δείκτη «πίσω (rear)», που δείχνει το τελευταίο στοιχείο της ουράς. Αν στην ουρά έχουν εισαχθεί τα στοιχεία 50, 70, 90, τότε η κατάσταση της ουράς και οι τιμές των δεικτών απεικονίζονται δίπλα.

        1. ……….. Ν
          [50][70][90][] [ ][]
          ^ ^
          | |
          Front =1 rear=3
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Τι είναι η «διεύθυνση επιστροφής» κατά την κλήση ενός υποπρογράμματος,
A

Απάντηση:

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q
  1. Τι είναι η «στοίβα χρόνου εκτέλεσης»;
A

Απάντηση:

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q
  1. Ποιες δομές δεδομένων γνωρίζετε, στις οποίες οι κόμβοι δεν είναι απαραίτη το να κατέχουν συνεχόμενες θέσεις μνήμης;
A

Απάντηση:

Δομές δεδομένων, στις οποίες οι κόμβοι δεν είναι απαραίτητο να κατέχουν συνεχόμενες θέσεις μνήμης είναι οι λίστες, τα δέντρα και οι γράφοι.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q
  1. Οι δομές δεδομένων, λίστες, δέντρα και οι γράφοι είναι στατικές ή δυναμικές δομές δεδομένων;
A

Γνωρίζουμε ότι τα στοιχεία των δυναμικών δομών δεν αποθηκεύονται σε συνεχόμενες θέσεις μνήμης. Επειδή, στις λίστες, τα δέντρα και στους γράφους, οι κόμβοι από τους οποίους αποτελούνται δεν είναι απαραίτητο να κατέχουν συνεχόμενες θέσεις μνήμης, μπορούμε να πούμε ότι είναι δυναμικές δομές δεδομένων.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q
  1. Τι είναι μια συνδεδεμένη λίστα;
A

Απάντηση:

Μια «συνδεδεμένη λίστα» είναι ένα σύνολο κόμβων που συνήθως βρίσκονται σε απομακρυσμένες θέσεις μνήμης και είναι γραμμικά διατεταγμένοι (ο ένας μετά τον άλλον).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q
  1. Η «λίστα» είναι γραμμική ή μη γραμμική δομή δεδομένων;
A

Απάντηση:

Η λίστα είναι γραμμική δομή δεδομένων γιατί τα δεδομένα της ακολουθούν μια σειρά, δηλαδή, ο δεύτερος κόμβος θα είναι πάντα μετά τον πρώτο κόμβο και πριν από τον τρίτο κόμβο κ.ο.κ. (ισχύει η σχέση της συνεχόμενης λογικής γειτονικότητας των στοιχείων της).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q
  1. Τι είναι ένας «δείκτης» γενικά στον προγραμματισμό;
A

Απάντηση:

Ο δείκτης γενικά, είναι ένας ιδιαίτερος τύπος δεδομένων που προσφέρεται στις σύγχρονες γλώσσες προγραμματισμού. Δεν λαμβάνει αριθμητικές τιμές όπως ακέραιες πραγματικές, αλλά οι τιμές που λαμβάνει, είναι διευθύνσεις στην κύρια μνήμη και χρησιμοποιείται για τη σύνδεση των διαφόρων στοιχείων μιας δομής που είναι αποθηκευμένα σε μη συνεχόμενες θέσεις μνήμης.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q
  1. Πότε μια λίστα λέμε ότι είναι απλά συνδεδεμένη;
A

Απάντηση:

Μία λίστα είναι απλά συνδεδεμένη όταν μπορούμε να κινηθούμε σε αυτήν προς μια κατεύθυνση ξεκινώντας πάντα από τον πρώτο κόμβο και μετακινούμενοι προς τον τελευταίο.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q
  1. Από τι αποτελείται ένας κόμβος στην απλά συνδεδεμένη λίστα;
A

Ένας κόμβος μιας λίστας αποτελείται από δύο τμήματα (πεδία) και η δομή του είναι

Το πρώτο τμήμα είναι το πεδίο «Δεδομένα», το οποίο περιέχει τα δεδομένα και το δεύτερο είναι το πεδίο «Δείκτης», το οποίο φιλοξενεί τη διεύθυνση του επόμενου κόμβου με τον οποίο συνδέεται, δηλαδή περιέχει έναν δείκτη (pointer) που δείχνει στον επόμενο κόμβο.

Δεδομένα | Δείκτης |

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q
  1. Από τι αποτελείται ένας κόμβος στην απλά συνδεδεμένη λίστα;
A

Ένας κόμβος μιας λίστας αποτελείται από δύο τμήματα (πεδία) και η δομή του είναι

Το πρώτο τμήμα είναι το πεδίο «Δεδομένα», το οποίο περιέχει τα δεδομένα και το δεύτερο είναι το πεδίο «Δείκτης», το οποίο φιλοξενεί τη διεύθυνση του επόμενου κόμβου με τον οποίο συνδέεται, δηλαδή περιέχει έναν δείκτη (pointer) που δείχνει στον επόμενο κόμβο.

Δεδομένα | Δείκτης |

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q
  1. α. Τι τιμές λαμβάνει το κάθε ένα πεδίο, ενός κόμβου μιας απλά συνδεδε μένης λίστας;

β. Γιατί χρησιμοποιείται το πεδίο «Δείκτης» μιας απλά συνδεδεμένης λίστας και πως τον απεικονίζουμε;

A

Το πεδίο «Δεδομένα» μπορεί να περιέχει μία ή περισσότερες αλφαριθμητικές ή αριθμητικές πληροφορίες. Το πεδίο «Δείκτης» δεν λαμβάνει αριθμητικές τιμές (ακέραιες, πραγματικές), αλλά οι τιμές του είναι διευθύνσεις στην κύρια μνήμη και συγκεκριμένα φιλοξενεί τη διεύθυνση του επόμενου κόμβου με τον οποίο συν δέεται, δηλαδή περιέχει έναν δείκτη (pointer) που δείχνει στον επόμενο κόμβο.

β. Το πεδίο «Δείκτης» χρησιμοποιείται για τη σύνδεση των στοιχείων (κόμβων) της λίστας που είναι αποθηκευμένα σε μη συνεχόμενες θέσεις μνήμης, δείχνοντας τον επόμενο κόμβο της λίστας. Τον απεικονίζουμε συμβολικά με ένα βέλος για να δηλώσουμε τη σύνδεση μεταξύ του προηγούμενου και το επόμενου κόμβου.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q
  1. Τι είναι η μεταβλητή/δείκτης «Κεφαλή» σε μια απλά συνδεδεμένη λίστα;
A

Απάντηση:

Για να προσπελάσουμε τους κόμβους μιας λίστας πρέπει να γνωρίζουμε τη διεύθυνση δηλαδή τη θέση μνήμης του πρώτου κόμβου της λίστας. Η διεύθυνση αυτή αποθηκεύεται σε μια ειδική μεταβλητή που ονομάζεται «Κεφαλή». Έτσι ο δείκτης/μεταβλητή «Κεφαλή (Head)» δείχνει στον πρώτο κόμβο μιας λίστας, δηλαδή περιέχει τη διεύθυνση του πρώτου κόμβου της λίστας.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q
  1. Τι τιμή έχει το πεδίο «Δείκτης» του τελευταίου κόμβου μιας απλά συν δεδεμένης λίστας;
A

Απάντηση:

Ο δείκτης του τελευταίου κόμβου μιας λίστας δε δείχνει σε κάποιον κόμβο, στην ουσία είναι ένας δείκτης στο κενό. Για να το δηλώσουμε αυτό λέμε ότι το πεδίο δείκτη του τελευταίου κόμβου έχει την τιμή NULL και τον αναπαριστούμε με το σύμβολο «●»,

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q
  1. Να δώσετε ένα παράδειγμα μιας απλά συνδεδεμένης λίστας.
A

Απάντηση:

Στο παρακάτω σχήμα παρουσιάζεται μια απλά συνδεδεμένη λίστα με πέντε κόμβους που περιέχει ακέραιους αριθμούς.

[Κεφαλή]-
👇
[7][] ->[1][]->[9][]->[3][]->[5][●]

Στον δείκτη «Κεφαλή» υπάρχει η διεύθυνση του πρώτου κόμβου της λίστας. Σε κάθε κόμβο,στο πεδιο 《δεδομένο» υπάρχει ένας ακέραιος αριθμός που ειναι η αριθμητική πληροφορία που περιέχει και στο πεδίο «Δείκτης» περιέχεται η διεύθυνση του επόμενυ κομβου η οποία απεικονίζεται συμβολικά με ένα βέλος, ώστε να δείχει τη σύνδεση μεταξύ του προηγούμενου και το επόμενου κόμβου. Έτσι, στον πρώτο κόμβο, το πεδίο «Δεδομένο» περιέχει τον αριθμό 7 και ο δείκτης του πρώτου κόμβου δειχνει τον δεύτερο. Στον δεύτερο κόμβο, το πεδίο «Δεδομένο» περιέχει τον αριθμό 1 και ο δείκτης του δεύτερου κόμβου δειχνει στη διευθυνση του τριτου κκμβου κοκ. Ο δεικτης του τελευταιου κομβου εχει ως τιμη το NULL (σύμβολο «●») καθώς δεν δείχνει σε κάποιον επόμενο κόμβο

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q
  1. Να εξηγήσετε πως γίνεται η προσπέλαση στους κόμβους μιας απλά συν δεδεμένης λίστας.
A

Απάντηση:

Οι κόμβοι μιας συνδεδεμένης λίστας δεν έχουν ονόματα και το μόνο που γνωρίζουμε για αυτούς είναι οι διευθύνσεις τους οι οποίες είναι αποθηκευμένες στους προηγούμενους κόμβους. Για να προσπελάσουμε τους κόμβους της λίστας αξιοποιούμε αυτές τις διευθύνσεις. Άμεση πρόσβαση έχουμε μόνο στον πρώτο κόμβο της λίστας μέσω της διεύθυνσης του η οποία βρίσκεται στον δείκτη «Κεφαλή». Για να εντοπίσουμε κάποιον από τους ενδιάμεσους κόμβους, ξεκινάμε από τον πρώτο κόμβο και ακολουθούμε τους δείκτες με τη σειρά μέχρι να φτάσουμε στον επιθυμητό κόμβο.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q
  1. Πως μπορούν να αξιοποιηθούν οι συνδεδεμένες λίστες;
A

Απάντηση:

Οι συνδεδεμένες λίστες μπορούν να αξιοποιηθούν για την υλοποίηση της στοίβας και της ουράς λόγω της δυνατότητας αυξομείωσης του μεγέθους τους.

29
Q
  1. Πότε μια λίστα λέμε ότι είναι διπλά συνδεδεμένη;
A

Απάντηση:

Μία λίστα είναι διπλά συνδεδεμένη όταν μπορούμε να κινηθούμε σε αυτήν και προς τις δύο κατευθύνσεις.

30
Q
  1. Πόσους δείκτες χρησιμοποιεί η διπλά συνδεδεμένη λίστα και γιατί;
A

Απάντηση:

Η διπλά συνδεδεμένη λίστα χρησιμοποιεί δύο δείκτες: έναν δείκτη για να συνδέει τον κόμβο με τον αμέσως επόμενο κόμβο και έναν δείκτη για να συνδέει τον κόμβο με τον αμέσως προηγούμενο κόμβο. Η ύπαρξη ενός δεύτερου δείκτη προσφέρει τη δυνατότητα ξεκινώντας από οποιοδήποτε κόμβο της λίστας να μπορούμε να διαβάσουμε τη λίστα και προς τις δύο κατευθύνσεις.

31
Q
  1. Από τι αποτελείται ένας κόμβος στη διπλά συνδεδεμένη λίστα;
A

Απάντηση:

Ένας κόμβος μιας διπλά συνδεδεμένης λίστας αποτελείται από τρία τμήματα (πεδία) και η δομή του είναι:

[Δείκτης Προηγούμενο][Δεδομένα][Δείκτης Επόμενο]

Στο πρώτο τμήμα υπάρχει ο δείκτης που δείχνει στον προηγούμενο κόμβο ακολουθεί το πεδίο «Δεδομένα», το οποίο περιέχει τα δεδομένα και έπειτα είναι ο δείκτης που δείχνει στον επόμενο κόμβο.

32
Q
  1. Να δώσετε ένα παράδειγμα μιας διπλά συνδεδεμένης λίστας.
A

Απάντηση:

Στο παρακάτω σχήμα παρουσιάζεται μια διπλά συνδεδεμένη λίστα με τρείς κόμβους που περιέχει ακέραιους αριθμούς

[Κεφαλη]-> [●][10][]<=>[][6][]<=>[][9][●]<-[ουρα]

Στον δείκτη «Κεφαλή» υπάρχει η διεύθυνση του πρώτου κόμβου της λίστας. Στον πρώτο κόμβο ο δείκτης που δείχνει τον προηγούμενο κόμβο έχει ως τιμή το NULL (σύμβολο «●») καθώς δεν υπάρχει προηγούμενος κόμβος. Στον τελευταίο κόμβος ο δείκτης που δείχνει τον επόμενο κόμβο έχει ως τιμή το NULL (σύμβολο «●») καθώς δεν υπάρχει επόμενος κόμβος. Κάθε ενδιάμεσος κόμβος έχει δύο δείκτες, έναν που δείχνει στον προηγούμενο και έναν που δείχνει στον επόμενο κόμβο. Στον δείκτη «Ουρά» υπάρχει η διεύθυνση του τελευταίου κόμβου της λίστας.

33
Q
  1. Τι πρόβλημα δημιουργεί η χρήση μιας διπλά συνδεδεμένης λίστας;
A

Απάντηση:

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

34
Q
  1. Ποιες βασικές πράξεις μπορούν να γίνουν στις συνδεδεμένες λίστες; Απάντηση:
A

Οι βασικές πράξεις των συνδεδεμένων λιστών είναι:

Εισαγωγή κόμβου στη λίστα. Η εισαγωγή μπορεί να γίνει στην αρχή, στο τέλος ή στο ενδιάμεσο της λίστας.

Διαγραφή κόμβου από τη λίστα. Η διαγραφή μπορεί να γίνει στην αρχή, στο τέλος ή στο ενδιάμεσο της λίστας.

Έλεγχος αν η λίστα είναι κενή.

Αναζήτηση κόμβου για να βρεθεί ένα συγκεκριμένο στοιχείο.

Διάσχιση της λίστας και προσπέλαση των στοιχείων της. Παράδειγμα η εκτύπωση των δεδομένων που περιέχονται σε όλους τους κόμβους της λίστας.

35
Q
  1. Ποιες διαφορές υπάρχουν μεταξύ απλών και διπλών συνδεδεμένων λιστών;
A

Απάντηση:

Οι βασικές διαφορές είναι:

Στην απλά συνδεδεμένη λίστα κάθε κόμβος συνδέεται μόνο με τον αμέσως επόμενο κόμβο, εκτός, από τον τελευταίο κόμβο. Στη διπλά συνδεδεμένη λίστα, κάθε κόμβος συνδέεται με τον αμέσως επόμενο και τον αμέσως προηγούμενο κόμβο, εκτός, από τον αρχικό κόμβο που συνδέεται μόνο με τον επόμενο και εκτός από τον τελευταίο κόμβο που συνδέεται μόνο με τον προηγούμενο,

Στην απλά συνδεδεμένη λίστα μπορούμε να κινηθούμε προς μία μόνο κατεύθυνση, ξεκινώντας από τον πρώτο κόμβο και μετακινούμενοι προς τον τελευταίο, Στη διπλά συνδεδεμένη μπορούμε κινηθούμε και προς τις δύο κατευθύνσεις, είτε ξεκινώντας από τον πρώτο κόμβο και μετακινούμενοι προς τον τελευταίο κόμβο είτε από τον τελευταίο μετακινούμενοι προς τον πρώτο κόμβο της λίστας.

36
Q
  1. Ποιες διαφορές υπάρχουν ως προς τον τρόπο προσπέλασης (εισαγωγή και εξαγωγή στοιχείων) μεταξύ λίστας, στοίβας και ουράς,
A

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

Μια άλλη διαφορά εντοπίζεται στην εξαγωγή στοιχείου. Στη στοίβα ένα στοιχείο μπορεί να εξέλθει μόνο από την κορυφή (λειτουργία απώθηση), ενώ στην ουρά ένα στοιχείο μπορεί να εξέλθει μόνο από την αρχή της (λειτουργία εξαγωγή). Στη λίστα ένα στοιχείο (κόμβος) μπορεί να διαγραφεί από οποιοδήποτε σημείο της (αρχή, τέλος ή ενδιάμεσα).
.

37
Q
  1. Ποιες σημαντικές διαφορές υπάρχουν μεταξύ της δομής δεδομένων «Πινακα» και της δομής δεδομένων «Λίστα»;
A

Απάντηση:

Οι διαφορές μεταξύ ενός «Πίνακα» και μιας «Λίστας» είναι:

Στον τρόπο προσπέλασης. Ο πίνακας θεωρείται μια δομή τυχαίας προσπέλασης καθώς μπορούμε να προσπελάσουμε οποιοδήποτε στοιχείο (κόμβο) του κατευθείαν. Η λίστα αντίθετα είναι μια δομή σειριακής ή ακολουθιακής προσπέλασης, δηλαδή για να φθάσουμε σε έναν κόμβο πρέπει να περάσουμε όλους τους προηγούμενους ξεκινώντας από τον πρώτο.

Στο μέγεθος. Ο πίνακας επειδή είναι στατική δομή, έχει σταθερός μέγεθος το οποίο δηλώνεται εξαρχής κατά την υλοποίηση του. Η λίστα είναι δυναμική δομή και το μέγεθος της μεταβάλλεται καθώς εισάγονται νέοι κόμβοι σε αυτήν ή δια γράφονται κάποιοι άλλοι

Στην αποθήκευση. Τα στοιχεία ενός πίνακα αποθηκεύονται σε συνεχόμενες θέσεις μνήμης ενώ οι κόμβοι της λίστας αποθηκεύονται σε μη συνεχόμενες θέσεις μνήμης.

38
Q

263.

Να αναφέρετε τα πλεονεκτήματα της δομής δεδομένων της «Λίστας» έναντι της δομής δεδομένων του «Πίνακα».

A

Απάντηση:

Τα πλεονεκτήματα της «Λίστας» σε σχέση με τον «Πίνακα» είναι:

Το δυναμικό της μέγεθος.

Η ευκολία στην εισαγωγή και στη διαγραφή από οποιοδήποτε μέρος της.

Η μη αναγκαιότητα δήλωσης του μεγέθους της.

39
Q
  1. Να αναφέρετε τα μειονεκτήματα της δομής δεδομένων της «Λίστας» έναντι της δομής δεδομένων του «Πίνακα».

Απάντηση:

A

Τα μειονεκτήματα της «Λίστας» σε σχέση με τον «Πίνακα» είναι:

Δεν επιτρέπεται η τυχαία προσπέλαση στη «Λίστα». Δεν μπορούμε να φτάσουμε σε έναν συγκεκριμένο κόμβο μιας λίστας χωρίς να μην έχουμε περάσει διαδοχικά από όλους τους προηγούμενους. Στην περίπτωση της απλά συνδεδεμένης λίστας ξεκινάμε από τον πρώτο και διαδοχικά περνάμε από όλους τους κόμβους μέχρι να φτάσουμε στον επιθυμητό. Ενώ στην περίπτωση της διπλά συνδεδεμένης λίστας μπορούμε να ξεκινήσουμε και από τον τελευταίο κόμβο. Έτσι δεν μπορούμε να πραγματοποιήσουμε με αποτελεσματικό τρόπο δυαδική αναζήτηση σε συνδεδεμένες λίστες

Οι συνδεδεμένες λίστες έχουν μεγαλύτερη επιβάρυνση από τους πίνακες. Οι συνδεδεμένοι κόμβοι είναι δυναμικά κατανεμημένοι και κάθε κόμβος πρέπει να αποθηκεύσει έναν πρόσθετο δείκτη που δείχνει στον επόμενο κόμβο με αποτέλεσμα να είναι λιγότερο αποτελεσματικοί στη χρήση της μνήμης. Μάλιστα στην περίπτωση των διπλά συνδεδεμένων λιστών χρειάζεται να αποθηκεύεται για κάθε κόμβο και ένας επιπλέον δεύτερος δείκτης που δείχνει στον προηγούμενο κόμβο.

40
Q

. Τι είναι η δομή δεδομένων «δένδρο»;

A

Απάντηση:

Ένα «δένδρο» είναι μια δομή που αποτελείται από ένα σύνολο κόμβων και ένα σύνολο ακμών μεταξύ των κόμβων.

41
Q
  1. Τι ονομάζουμε «γονέα» στη δομή δένδρο;
A

Απάντηση:

Όταν δύο κόμβοι συνδέονται μεταξύ τους με μία ακμή, ονομάζουμε «γονέα» τον κόμβο από τον οποίο ξεκινάει η ακμή.

42
Q
  1. Τι ονομάζουμε «παιδί» στη δομή δένδρο;
A

Απάντηση:

Όταν δύο κόμβοι συνδέονται μεταξύ τους με μία ακμή, ονομάζουμε «παιδί» τον κόμβο στον οποίο καταλήγει η ακμή.

43
Q
  1. Τι ονομάζουμε «ρίζα» στη δομή δένδρο;
A

Απάντηση:

Ο κόμβος που δεν έχει γονέα ονομάζεται «ρίζα» και βρίσκεται στην κορυφή του δένδρου.

44
Q
  1. Ποιοι κόμβοι ονομάζονται «αδέλφια» στη δομή δένδρο;
A

Απάντηση:

Οι κόμβοι που έχουν τον ίδιο γονέα ονομάζονται «αδέλφια»,

45
Q
  1. Ποιοι κόμβοι ονομάζονται «φύλλα» στη δομή δένδρο;
A

Απάντηση:

Οι κόμβοι που δεν έχουν παιδιά ονομάζονται «φύλλα».

46
Q
  1. Μπορούμε να έχουμε δένδρο με έναν μόνο κόμβο;
A

Απάντηση:

Ναι μπορούμε να έχουμε ένα απλό δένδρο με ένα μόνο κόμβο, ο οποίος κόμβος είναι «ρίζα» του δένδρου καθώς δεν έχει γονέα αλλά και «φύλλο» διότι δεν έχει παιδιά.

47
Q
  1. Ποιοι κανόνες ισχύουν στη δομή «δένδρο»;
A

Απάντηση:

Ένα δένδρο είναι μία δομή που αποτελείται από ένα σύνολο κόμβων και ένα σύνολο ακμών μεταξύ των κόμβων με βάση τους εξής κανόνες:

Υπάρχει ένας ξεχωριστός κόμβος που ονομάζεται ρίζα. Αυτός είναι ένας κόμβος χωρίς γονέα.

Για κάθε κόμβο c, εκτός από τη ρίζα, υπάρχει μόνο μια ακμή που καταλήγει στον κόμβο αυτόν ξεκινώντας από κάποιον άλλον κόμβο p. Ο κόμβος p ονομάζεται γονέας του c και ο κόμβος c είναι το παιδί του p

Για κάθε κόμβο υπάρχει μία μοναδική διαδρομή, δηλαδή, μια ακολουθία διαδοχικών ακμών, που ξεκινάει από τη ρίζα και τερματίζει σε αυτόν τον κόμβο.

48
Q

. Τι είναι το «κενό δένδρο»;

A

Απάντηση:

«Κενό δένδρο» είναι το δένδρο που δεν έχει ούτε κόμβους ούτε ακμές και είναι το μόνο που δεν έχει ρίζα.

49
Q
  1. Τι είναι τα «υποδένδρα»;
    ,
A

Απάντηση:

Τα «υποδένδρα» είναι μικρότερα δένδρα που μπορούμε να εντοπίσουμε μέσα σε ένα δένδρο.

50
Q
  1. Τι είναι το «διατεταγμένο δένδρο»;
A

Απάντηση:

«Διατεταγμένο δένδρο» είναι το δένδρο στο οποίο για κάθε κόμβο υπάρχει μια γραμμική σχέση μεταξύ των παιδιών του κόμβου αυτού, δηλαδή έχει σημασία η διάταξη των παιδιών κάθε κόμβου.

51
Q
  1. Το «δένδρο» είναι γραμμική ή μη γραμμική δομή δεδομένων;
A

Απάντηση:

Το δένδρο είναι μη γραμμική δομή δεδομένων, καθώς τα δεδομένα δεν ακολουθούν μια σειρά. Δηλαδή, σε ένα δένδρο που περιλαμβάνει τους κόμβους x1, x2, x3, οι κόμβοι δεν θα είναι πάντα σε μια σειρά τέτοια ώστε ο κόμβος x2 να είναι πάντα μετά τον κόμβο χ1 και πριν από τον κόμβο χ3, αλλά μπορούν να έχουν οποιαδήποτε διάταξη και μετά από έναν κόμβο να υπάρχουν περισσότεροι από ένας κόμβοι.

52
Q
  1. Τα «δένδρα» σε ποιους τομείς της επιστήμης των υπολογιστών χρησιμοποιούνται;
A

Απάντηση:

Τα δένδρα είναι μια ευέλικτη δομή δεδομένων που χρησιμοποιούνται σε πολλούς τομείς της επιστήμης των υπολογιστών, όπως των γραφικών, των συστημάτων βάσεων δεδομένων, των λειτουργικών συστημάτων, των παιχνιδιών, της τεχνητής νοημοσύνης και της δικτύωσης υπολογιστών.

53
Q
  1. α. Για ποιους λόγους η δομή δεδομένων «δένδρο» είναι τόσο ισχυρή; Να αναφέρετε αντίστοιχο παράδειγμα.

β. Τι προσφέρει η δομή δεδομένων «δένδρο»;

A

Απάντηση:

Η δομή δεδομένων « δένδρο» είναι ισχυρή για δύο λόγους:

Ο πρώτος λόγος αναφέρεται στη δυναμικότητα των δένδρων καθώς είναι πολύ εύκολο να προσθέσουμε, να αφαιρέσουμε ή να αναζητήσουμε ένα στοιχείο σε ένα δένδρο.

Ο δεύτερος βασικός λόγος είναι ότι η δομή των δένδρων μεταφέρει πληροφορίες.

β. Η δομή δεδομένων «δένδρο» προσφέρει μια αποτελεσματική οργάνωση και διαχείριση δεδομένων

54
Q

Τα δένδρα αποτελούν τη βάση αρκετών αλγορίθμων. Να αναφέρετε ορισμένους από αυτούς.

A

Απάντηση:

Τα δένδρα αποτελούν τη βάση αρκετών αλγορίθμων επίλυσης προβλήματος, όπως είναι η συμπίεση εικόνων, η ταξινόμηση, η αυτόματη συμπλήρωση λέξεων σε συσκευές κινητων τηλεφώνων, η μεταγλώττιση ενός προγράμματος και η λήψη αποφάσεων.

55
Q
  1. α. Τι είναι τα «δένδρα απόφασης»;

β. Που χρησιμοποιούνται;

γ. Να δώσετε ένα παράδειγμα σχεδιασμού ενός δένδρου απόφασης.

A

Απάντηση:

Τα δένδρα απόφασης, είναι δένδρα στα οποία κάθε κόμβος αντιπροσωπεύει ένα χαρακτηριστικό (ιδιότητα), κάθε ακμή αντιπροσωπεύει μια απόφαση (κανόνα) και κάθε φύλλο αντιπροσωπεύει ένα αποτέλεσμα.

β. Τα δένδρα απόφασης χρησιμοποιούνται σε προβλήματα λήψεων αποφάσεων στα οποία θα πρέπει να λάβουμε αποφάσεις λαμβάνοντας υπόψη κάποιους παράγοντες. Είναι δημοφιλής σε περιπτώσεις ιατρικών διαγνώσεων και έχουν πρωτεύοντα ρόλο στους αλγορίθμους μηχανικής μάθησης.

56
Q
  1. Τι είναι το «δένδρο παιχνιδιού» και που χρησιμοποιείται;
A

Απάντηση:

Το δένδρο παιχνιδιού είναι ένα ειδικό δένδρο που χρησιμοποιείται από τον υπολογιστή όταν παίζουμε παιχνίδια σε αυτόν, όπως είναι το σκάκι, η τρίλιζα, το τάβλι και άλλα, το οποίο μοντελοποιεί όλες τις πιθανές κινήσεις των παικτών για να βρει τον νικητή. Κάθε κόμβος στο δένδρο, θα μπορούσε να αντιπροσωπεύει μία συγκεκριμένη κατά σταση παιχνιδιού, να περιέχει πληροφορίες σχετικά με το ποιος παίκτης έχει τη μεγα λύτερη πιθανότητα να κερδίσει από οποιαδήποτε πιθανή κίνηση.

57
Q
  1. Μπορεί η δομή «δένδρο» να χρησιμοποιηθεί για αναπαράσταση αριθμη τικών εκφράσεων;
A

Απάντηση:

Η δομή «δένδρο» μπορεί να χρησιμοποιηθεί για την αναπαράσταση και κατ’ επέκταση τον υπολογισμό αριθμητικών εκφράσεων.

Παράδειγμα το διπλανό δέντρο αναπαριστά την αριθμητική έκφραση α*(β + γ).

(*)
👇 👇
(α) (+)
👇👇
(β)(γ)

58
Q
  1. Τι ονομάζεται «δυαδικό δένδρο»;
A

Απάντηση:

Ένα «δυαδικό δένδρα» είναι ένα διατεταγμένο δένδρο, στο οποίο κάθε κόμβος έχει το πολύ δύο παιδιά, το αριστερό και το δεξί παιδί δηλαδή μιλάμε για αριστερό και δεξιό υποδένδρο ενός κόμβου.

59
Q
  1. Τι είναι ένα «δυαδικό δένδρο αναζήτησης
A

Ενα «δυαδικό δένδρο αναζήτησης» είναι ένα δυαδικό δένδρο, όπου για κάθε κόμβο u, όλοι οι κόμβοι του αριστερού υποδένδρου έχουν τιμές μικρότερες της τιμής του κόμβου u και όλοι οι κόμβοι του δεξιού υποδένδρου έχουν τιμές μεγαλύτερες τη ίσες) της τιμής του κόμβου u.

.

60
Q
  1. Πού χρησιμοποιούνται τα «δυαδικά δένδρα αναζήτησης»;
A

Απάντηση:

Τα «δυαδικά δένδρα αναζήτησης» χρησιμοποιούνται για να αποθηκεύσουμε δεδομένα με έναν τρόπο που θα μας επιτρέψει να τα βρίσκουμε πιο εύκολα. Η ιδέα πίσω από ένα δυαδικό δένδρο αναζήτησης είναι παρόμοια με αυτήν της δυαδικής ανα ζήτησης σε έναν ταξινομημένο πίνακα.

Για παράδειγμα, οι αλγόριθμοι της αναζήτησης όλων των email που έχουμε λάβει ή στείλει σε μία συγκεκριμένη περίοδο ή της εύρεσης όλων των λέξεων, που αρχίζουν από την συμβολοσειρά «πληρ», αξιοποιούν τα δυαδικά δένδρα αναζήτησης.

61
Q
  1. Ποιο είναι το πλεονέκτημα των «δυαδικών δένδρων αναζήτησης»;
A

Απάντηση:

Το πλεονέκτημα των «δυαδικών δένδρων αναζήτησης» βρίσκεται στον τρόπο αναζήτησης καθώς η αναζήτηση για μια συγκεκριμένη τιμή γίνεται ταχύτερα χάρη στον τρόπο αποθήκευσης των τιμών.

62
Q
  1. Τι είναι ένας «γράφος»;
A

Απάντηση:

Ένας «γράφος» είναι μία δομή που αποτελείται από ένα σύνολο κόμβων (ή σημείων ή κορυφών) και ένα σύνολο γραμμών (ή ακμών ή τόξων) που ενώνουν ορι σμένους ή όλους τους κόμβους.

63
Q
  1. Γιατί ο «γράφος» αποτελεί την πιο γενική δομή δεδομένων;
A

Απάντηση:

Ο «γράφος» αποτελεί την πιο γενική δομή δεδομένων, γιατί όλες οι προηγού μενες δομές, δηλαδή οι λίστες και τα δένδρα, μπορούν να θεωρηθούν περιπτώσεις γράφων.

64
Q
  1. Ο «γράφος» είναι γραμμική ή μη γραμμική δομή δεδομένων;
A

Απάντηση:

Ο γράφος είναι μη γραμμική δομή δεδομένων, γιατί τα δεδομένα του δεν ακολουθούν μια σειρά, δηλαδή ο δεύτερος κόμβος δεν είναι μετά τον πρώτο κόμβο και πριν από τον τρίτο κόμβο, αλλά μπορεί να έχουν οποιαδήποτε διάταξη στην οποία μετά από έναν κόμβο να υπάρχουν ένας ή περισσότεροι κόμβοι.

65
Q
  1. Ποια είναι τα χαρακτηριστικά της δομής «γράφος»;
A

Απάντηση:

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

66
Q

α. Ποια είδη ακμών υπάρχουν σε έναν γράφο;

β. Ποιες είναι οι διαφορές τους;

γ. Γιατί η διαφοροποίηση τους είναι σημαντική;

A

Απάντηση:

Σε έναν γράφο μπορούν να υπάρχουν δύο είδη ακμών.

•οι κατευθυνόμενες ακμές, δηλαδή οι ακμές που έχουν κατεύθυνση και

•οι μη κατευθυνόμενες ακμές, δηλαδή οι ακμές που δεν έχουν κατεύθυνση.

β. Σε μια κατευθυνόμενη ακμή, οι δύο κόμβοι συνδέονται με συγκεκριμένο τρόπο όπως φαίνεται δίπλα και μπορούμε να ταξιδέψουμε μεταξύ αυτών των δύο κόμβων με έναν μόνο τρόπο, από τον κόμβο Α στον κόμβο Β. Ο κόμβος από τον οποίο ξεκινάμε ονομάζεται «προέλευση» και ο κόμβος στον οποίο ταξιδεύουμε ονομάζεται «προορισμός». Σε μια κατευθυνόμενη ακμή, μπορούμε να ταξιδέψουμε μόνο από την προέλευση στον προορισμό και ποτέ το αντίστροφο.
(Α)—>(Β) !κατευθυνομενη ακμή
Σε μια μη κατευθυνόμενη ακμή, όπως αυτή που φαίνεται δίπλα, η διαδρομή μεταξύ των δύο κόμβων είναι αμφίδρομη, πράγμα που σημαίνει ότι οι κόμβοι προέλευσης και προορισμού δεν είναι σταθεροί. Έτσι μπορούμε να ταξιδέψουμε είτε από τον κόμβο Α προς τον κόμβο Β, είτε από τον κόμβο Β προς τον κόμβο Α.
(Α)——(β) !μη κατευθυνομενη ακμή

γ. Η διαφοροποίηση μεταξύ των ακμών είναι πολύ σημαντική, γιατί οι διαφορετικοί τύποι ακμών χρησιμοποιούνται για την αναγνώριση και τον καθορισμό του τύπου των γράφων με αποτέλεσμα οι ακμές σε έναν γράφο να καθορίζουν το πώς αποκαλείται ο γράφος.

67
Q
  1. Ποιοι τύποι γράφων υπάρχουν;
A

Υπάρχουν δύο τύποι γράφων οι οποίοι προκύπτουν από το είδος των ακμών που έχουν:
•ο κατευθυνόμενος γράφος, στον οποίον όλες οι ακμές του έχουν κατεύθυνση,
• και ο μη κατευθυνόμενος γράφος στον οποίον όλες οι ακμές του δεν έχουν κατεύθυνση.

68
Q
  1. Ποιες είναι οι διαφορές ανάμεσα στη δομή «δένδρο» και στη δομή «γράφος»;
A

Απάντηση:

○Τα δένδρα ξεκινούν πάντα με έναν κόμβο-ρίζα ενώ στους γράφους δεν υπάρχει η έννοια του κόμβου ρίζα καθώς οι κόμβοι μπορούν να συνδεθούν με οποιον δήποτε τρόπο.

○Τα δένδρα, διέπονται από συγκεκριμένους κανόνες ενώ σε ορισμένα ισχύουν ιδιαίτεροι κανόνες, όπως στα δυαδικά δένδρα αναζήτησης, στα οποία οι κόμβοι μπορεί να έχουν μέχρι δύο συνδέσεις με δύο κόμβους ανά πάσα στιγμή. Αντίθετα οι γράφοι δεν διέπονται από κανόνες που να καθορίζουν τον τρόπο που ο ένας κόμβος συνδέεται με έναν άλλο κόμβο.

○Ένα δένδρο πάντα έχει ακμές με κατεύθυνση και μπορεί μόνο να ρέει προς μία κατεύθυνση από τον κόμβο ρίζα σε κόμβους φύλλων ή κόμβους παιδιών (μονοκατευθυντικη ροη)Αντίθετα ένας γράφος μπορεί να έχει ακμές με κατεύθυνση ή και χωρίς κατεύθυνση.

○Η δομή δένδρο έχει μόνο μονόδρομες συνδέσεις, δηλαδή ένας κόμβος παιδιού μπορεί να έχει μόνο έναν γονέα. Αντίθετα η δομή γράφος έχει αμφίδρομες συνδέσεις επιτρέποντας την μετακίνηση από έναν κόμβο σε έναν άλλο και αντίστροφα.

○Ένα δένδρο δεν μπορεί να έχει βρόχους ή κυκλικούς δεσμούς σε αντίθεση με τον γράφο που επιτρέπεται η δημιουργία βρόχων.

○Σε κάθε κόμβο ενός γράφου μπορούν να καταλήγουν, μία ή περισσότερες ακμές ενώ σε κάθε κόμβου ενός δένδρου καταλήγει πάντα μία μόνο ακμή.