Περιεχόμενο
Η ουρά είναι μια δυναμική δομή δεδομένων από την οποία μπορείτε να αποκτήσετε πρόσβαση σε δεδομένα σε μια διαδικασία "πρώτης έλευσης, πρώτης εξόδου". Μια στοίβα είναι μια δυναμική δομή δεδομένων από την οποία μπορείτε να έχετε πρόσβαση στα δεδομένα σε μια διαδικασία "last-in, first-out". Αν εφαρμόσετε μια στοίβα, θα είναι διαθέσιμο μόνο το τελευταίο στοιχείο που εισάγετε. Αν θέλετε να έχετε πρόσβαση στα δεδομένα που αποτελούν τη βάση του (το πρώτο στοιχείο που βάζετε), τότε θα τα αντιμετωπίζετε ως ουρά. Για να γίνει αυτό, πρέπει να εφαρμόσετε ένα δεύτερο σωρό.
Οδηγίες
Η εφαρμογή μιας ουράς χρησιμοποιώντας δύο στοίβες είναι απλή (Ablestock.com/AbleStock.com/Getty Images)-
Στο πρόγραμμα επεξεργασίας κειμένου, γράψτε τον κώδικα για την υλοποίηση της στοίβας σύμφωνα με τις διαδικασίες και τις λειτουργίες που είναι διαθέσιμες στη γλώσσα προγραμματισμού που θέλετε να χρησιμοποιήσετε. Καλέστε αυτή τη στοίβα Stack_Entry. Τοποθετήστε τα δεδομένα στο Stack_Entry (πολλές γλώσσες προγραμματισμού χρησιμοποιούν την εντολή "push" για να προσθέσετε δεδομένα). Για παράδειγμα, εκτελέστε την εντολή "push" στο Stack_Entry για να εισαγάγετε τα δεδομένα με την ακόλουθη σειρά: "A", "B" και "C". Το "A" είναι το πρώτο που εισέρχεται και βρίσκεται στο κάτω μέρος της στοίβας. Εάν θέλετε να έχετε πρόσβαση σε αυτό το πρώτο στοιχείο, αντιμετωπίζετε τα δεδομένα ως ουρά.
-
Γράψτε τον κώδικα για να εφαρμόσετε μια δεύτερη στοίβα σύμφωνα με τις διαδικασίες και τις λειτουργίες που είναι διαθέσιμες στη γλώσσα προγραμματισμού που θέλετε να χρησιμοποιήσετε. Καλέστε το StackSafe (πολλές γλώσσες προγραμματισμού χρησιμοποιούν την εντολή "pop" για την κατάργηση δεδομένων από μια στοίβα).
-
Καταργήστε κάθε στοιχείο από τη στοίβα Stack_Insert και τοποθετήστε τα στο Stack Sleep. Σε γενικές γραμμές, καταργείτε ένα στοιχείο Stack_Input και το τοποθετείτε στο StackAid. Στη συνέχεια, ελέγξτε εάν το Stack_Input είναι κενό. Αν δεν είναι άδειο, αφαιρέστε το επόμενο στοιχείο από το Stack_Input και τοποθετήστε το στο Stack Sleep. Επαναλάβετε έως ότου το Stack_Input είναι κενό. Στο παράδειγμα μας, καταργείτε το "C" από το Stack_Input και το τοποθετείτε στο Stack_Aid. Βεβαιωθείτε ότι το InputPilot είναι κενό. Καταργήστε το "B" από το Stack_Input και ρυθμίστε το στο Stack_Aid. Βεβαιωθείτε ότι το InputPilot είναι κενό. Καταργήστε το "A" από το Stack_Input και ορίστε το σε Stack_Aid. Βεβαιωθείτε ότι το InputPilot είναι κενό.
-
Όταν η στοίβα Stack_Path είναι κενή, το στοιχείο που ήταν στο Stack_Input ("A" στο παράδειγμα μας) είναι τώρα στην κορυφή του Stack_Aside. Καταργήστε το στοιχείο SleepSeat και έχετε μετατρέψει τη στοίβα σας σε μια ουρά. Το πρώτο σας στοιχείο στη στοίβα είναι τώρα το πρώτο στοιχείο που πρέπει να αφαιρεθεί (πρώτα μέσα, πρώτα έξω ή FIFO πρώτα μέσα, πρώτα έξω).
Δύο στοίβες ισούνται με μια σειρά
Πώς
- Οι περισσότερες γλώσσες προγραμματισμού παρέχουν λειτουργίες για την επεξεργασία δεδομένων σε ένα διάνυσμα σαν να ήταν μια ουρά ή μια στοίβα. Δηλαδή, μπορείτε να έχετε πρόσβαση τόσο στην τελευταία όσο και στην πρώτη θέση του φορέα ανεξάρτητα από το ποιο τέλος εισάγετε τα δεδομένα από. Αν τα δεδομένα σας βρίσκονται σε διανύσματα, δεν χρειάζεται να ανησυχείτε για την πρόσβαση σε αυτές ως ουρά ή στοίβα. Αν όμως τα δεδομένα σας είναι σε δυναμικό σωρό και θέλετε να τα αντιμετωπίζετε ως ουρά, τότε θα πρέπει να εφαρμόσετε μια δεύτερη στοίβα.
Τι χρειάζεστε
- Ένα πρόγραμμα επεξεργασίας κειμένου
- Μεταγλωττιστής ή διερμηνέας για κάποια γλώσσα προγραμματισμού