Πέμπτη, Απρίλιος 16, 2026

Μία δομή καλείται διπλοουρά (dequeue) όταν ικανοποιεί τις απαιτήσεις που θέτει ο ακόλουθος αφηρημένος τύπος δεδομένων ΑΤΔ:

inject(x)   Τοποθετεί το στοιχείο x στο τέλος της ουράς
eject()       Επιστρέφει το τελευταίο στοιχείο, αφαιρώντας το
push(x)     Τοποθετεί το στοιχείο x στην κορυφή της ουράς
pop()         Επιστρέφει το κορυφαίο στοιχείο, αφαιρώντας το
first()        Επιστρέφει το κορυφαίο στοιχείο, δίχως την αφαίρεση του
last()         Επιστρέφει το τελευταίο στοιχείο, δίχως την αφαίρεση του

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

 

   Στην επόμενη εικόνα φαίνεται η εξαγωγή του τελευταίου στοιχείου μίας διπλοουράς:

    Στην ακόλουθη εικόνα φαίνεται η εισαγωγή στην κορυφή μίας διπλοουράς:

 

    Στην επόμενη εικόνα αντικατοπτρίζεται η εξαγωγή του κορυφαίου στοιχείου της διπλοουράς: