Μεθοδολογίες Προγραμματισμού (Εργαστήριο)

 

6n Εργασία

 

 

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

·        δεδομένα (ακέραιος, πραγματικός ή χαρακτήρας),

·        ένα δείκτη στον επόμενο κόμβο και

·        ένα δείκτη στον προηγούμενο κόμβο.

Δημιουργείστε τα αρχεία DLinkedList.h,  DLinkedList.cpp  και  main.cpp τα οποία θα περιέχουν τον ορισμό της τάξης, την υλοποίησή της (μέθοδοι) και το πρόγραμμα δοκιμής και επίδειξής της αντίστοιχα.

Να κατασκευαστεί πρότυπη τάξη “Iterator” η οποία δίνει την δυνατότητα επίσκεψης ένα προς ένα όλων των κόμβων της διπλής λίστας.

Η υλοποίηση της λίστας  θα περιλαμβάνει τις παρακάτω μεθόδους:

- Δομητής

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

- Addhead: Πρόσθεση κόμβου στην αρχή της λίστας

- Addtail: Πρόσθεση κόμβου στο τέλος της λίστας

- Removehead: Διαγραφή κόμβου από την αρχή της λίστας και επιστροφή της τιμής του πρώτου κόμβου

- Removetail: Διαγραφή κόμβου από τo τέλος της λίστας και επιστροφή της τιμής του τελευταίου κόμβου

- Head: Eπιστροφή της τιμής του πρώτου κόμβου

- IsEmpty: Αλληθής εάν η λίστα είναι άδεια, αλλοιώς ψευδής

 

Χρησιμοποιείστε εξαίρεση για τον έλεγχο της σωστής δέσμευσης μνήμης με την “new”.

 

Να γραφεί πρόγραμμα το οποίο δημιουργεί μία διπλά συνδεμένη λίστα ακεραίων (κάνοντας χρήση των μεθόδων εισαγωγής στην αρχή και στο τέλος της λίστας) την οποία εμφανίζει με την χρήση του Iterator τόσο από την αρχή προς το τέλος όσο και ανάποδα. Εφαρμόστε τις υπόλοιπες μεθόδους και εμφανίστε τα αποτελέσματα κάθε μιας.