Ένας αφηρημένος τύπος δεδομένων ορίζει ένα σύνολο τιμών και τις λειτουργίες που επιτρέπονται σε αυτές, περιγραφόμενες καθαρά με συμπεριφορά — όχι με κώδικα. Η υλοποίηση είναι η συγκεκριμένη δομή (array, linked list, tree) που υλοποιεί αυτή τη συμπεριφορά.
Το ίδιο ADT, διαφορετικές υλοποιήσεις
text
ADT "Queue": enqueue, dequeue, peek (FIFO contract)
Implementation A: array + two indices (ring buffer)
Implementation B: doubly linked list with head/tail pointers
Both honor the SAME contract; cost profiles differ.
Γιατί να τα χωρίσουμε
python
:
(): ...
(): ...
(): ...
