Διαφορά μεταξύ της στοίβας και της ουράς

Anonim

Stack vs Queue

Stack είναι μια λίστα με τις οποίες η εισαγωγή και διαγραφή των στοιχείων της λίστας μπορεί να γίνει μόνο στο ένα άκρο. Λόγω αυτού του λόγου, η στοίβα θεωρείται δομή δεδομένων LIFO (Last in First out). Η ουρά είναι επίσης μια λίστα με τις οποίες η εισαγωγή των στοιχείων λίστας γίνεται στο ένα άκρο που ονομάζεται πίσω και η διαγραφή των στοιχείων γίνεται στο άλλο άκρο που ονομάζεται εμπρός. Αυτός ο μηχανισμός εισαγωγής και διαγραφής καθιστά την ουρά μια δομή δεδομένων First in First out (FIFO).

Τι είναι το Stack;

Όπως αναφέρθηκε προηγουμένως, η στοίβα είναι μια δομή δεδομένων στην οποία τα στοιχεία προστίθενται και αφαιρούνται από ένα μόνο άκρο που ονομάζεται κορυφή. Οι στοίβες επιτρέπουν μόνο δύο βασικές λειτουργίες που ονομάζονται push and pop. Η λειτουργία ώθησης προσθέτει ένα νέο στοιχείο στην κορυφή της στοίβας. Η λειτουργία pop καταργεί ένα στοιχείο από την κορυφή της στοίβας. Εάν η στοίβα είναι ήδη γεμάτη, όταν εκτελείται μια λειτουργία ώθησης, θεωρείται ως υπερχείλιση στοίβας. Αν μια λειτουργία pop εκτελείται σε μια ήδη κενή στοίβα, θεωρείται ως υποκόμη στοίβας. Λόγω του μικρού αριθμού λειτουργιών που θα μπορούσαν να εκτελεστούν σε μια στοίβα, θεωρείται ως περιορισμένη δομή δεδομένων. Επιπλέον, σύμφωνα με τον τρόπο οριοθέτησης των λειτουργιών push και pop, είναι σαφές ότι τα στοιχεία που προστέθηκαν τελευταία στη στοίβα βγαίνουν πρώτα από τη στοίβα. Συνεπώς, η στοίβα θεωρείται δομή δεδομένων LIFO.

Τι είναι η ουρά;

Σε μια ουρά, προστίθενται στοιχεία από το πίσω μέρος της ουράς και αφαιρούνται από το μπροστινό μέρος της ουράς. Δεδομένου ότι πρώτα τα στοιχεία που προστίθενται θα αφαιρεθούν πρώτα από την ουρά, διατηρεί την εντολή FIFO. Λόγω αυτής της σειράς προσθήκης και αφαίρεσης στοιχείων, η ουρά αναπαριστά την ιδέα μιας γραμμής πληρωμής. Οι γενικές λειτουργίες που υποστηρίζονται από μια ουρά είναι λειτουργίες en-queue και de-queue. Η λειτουργία En-queue θα προσθέσει ένα στοιχείο στο πίσω μέρος της ουράς, ενώ η λειτουργία de-queue αφαιρεί ένα στοιχείο από το μπροστινό μέρος της ουράς. Σε γενικές γραμμές, οι ουρές δεν έχουν όριο στον αριθμό των στοιχείων που μπορούν να προστεθούν στην ουρά εκτός από τους περιορισμούς μνήμης.

Ποια είναι η διαφορά μεταξύ του Stack και της ουράς;

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

Σχετική σύνδεση:

Διαφορά μεταξύ στοίβας και σωρού