Οι ουρές είναι συνήθως απογοητευτικές στην πραγματική ζωή, αλλά σε ένα πρόγραμμα υπολογιστή μπορούν να λύσουν πολλά προβλήματα. Μάθετε τι μπορείτε να κάνετε με μια ουρά και πώς.
Η ουρά είναι μια ευέλικτη δομή δεδομένων που μπορείτε να χρησιμοποιήσετε σε διάφορες ρυθμίσεις. Από αλγόριθμους προγραμματισμού CPU έως εφαρμογές ιστού, βρίσκεται παντού.
Εάν προσπαθείτε να γίνετε προγραμματιστής Python, είναι ζωτικής σημασίας να ενημερωθείτε με αυτήν την απλή αλλά πανταχού παρούσα δομή δεδομένων. Ας μάθουμε ποια είναι η δομή δεδομένων ουράς και πώς να την εφαρμόσουμε στην Python.
Τι είναι η δομή δεδομένων ουράς;
Η ουρά είναι μια γραμμική δομή δεδομένων, που ακολουθεί την αρχή First-In-First-Out (FIFO). Αυτό σημαίνει ότι, όταν λαμβάνετε ένα στοιχείο από μια ουρά, θα λαμβάνετε όποιο από αυτά προσθέσατε πριν από τα άλλα.
Ακολουθούν οι βασικές λειτουργίες που μπορείτε να εκτελέσετε σε μια ουρά:
- Enqueue: Προσθήκη στοιχείων στην ουρά.
- Dequeue: Αφαιρέστε στοιχεία από την ουρά.
- Εκτύπωση: Εκτύπωση των στοιχείων στην ουρά.
- Μπροστά: Αποκτήστε το στοιχείο στο μπροστινό μέρος της ουράς.
- Πίσω: Αποκτήστε το στοιχείο στο πίσω μέρος της ουράς.
Μπορείτε να εφαρμόσετε τη δομή δεδομένων ουράς στην Python με δύο τρόπους: χρησιμοποιώντας είτε ένα κοντέινερ λίστας είτε μια ουρά διπλού άκρου από τη λειτουργική μονάδα συλλογών. Για αυτό το πρόγραμμα, θα χρησιμοποιήσετε μια λίστα.
Πώς να εφαρμόσετε τη δομή δεδομένων ουράς στην Python
Θα υλοποιήσετε μια ουρά χρησιμοποιώντας το κοντέινερ λίστας στην Python. Ξεκινήστε δηλώνοντας μια κενή λίστα με το όνομα Ουρά.
ουρά = []
Τώρα πρέπει να αποδεχτείτε την εισαγωγή χρήστη και να εκτελέσετε τη λειτουργία που έχει εισαχθεί από τον χρήστη. Αρχικά, εκτυπώστε μια γραμμή που ζητά από τον χρήστη να εισαγάγει μια εντολή. Στη συνέχεια, περιμένετε για την εισαγωγή του χρήστη και αποθηκεύστε τα στο εντολή μεταβλητός.
Χρησιμοποιώντας Δηλώσεις Python if, εκτελέστε τη λειτουργία που αντιστοιχεί στην εντολή που εισάγει ο χρήστης. Εάν εισάγουν μια μη αναγνωρισμένη εντολή, κλείστε το πρόγραμμα. Βάλτε αυτές τις πράξεις μέσα σε ένα άπειρο ενώ βρόχος για να διασφαλίσετε ότι το πρόγραμμα θα συνεχίσει να εκτελείται εκτός και αν σταματήσουν.
ενώΑληθής:
εντολή = είσοδος("Τι θέλετε να κάνετε? ")αν εντολή == "ουρά":
# κωδικός
ελιφ εντολή == "dequeue":
# κωδικός
αλλού:
Διακοπή
ουρά εκτύπωσης)
Ουρά
Τώρα που έχετε ασχοληθεί με την κύρια ροή ελέγχου του προγράμματος, μπορείτε να ορίσετε το μπλοκ κώδικα για κάθε λειτουργία. Πρώτα, γράψτε τον κώδικα για την ουρά. Enqueue σημαίνει εισαγωγή ενός στοιχείου στο τέλος της ουράς. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας το προσαρτώ() μέθοδος:
ανεντολή == "ουρά":
ουρά = ενθ(εισαγωγή("Εισαγάγετε το στοιχείο στο Enqueue:"))
Dequeue
Τώρα, γράψτε τον κωδικό για να αφαιρέσετε ένα στοιχείο από την ουρά. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας τη μέθοδο pop με το 0 ως ευρετήριο. Γιατί; Όπως μάθατε νωρίτερα, μια ουρά ακολουθεί τη σειρά FIFO, επομένως το πρώτο στοιχείο που βάλετε στην ουρά θα πρέπει να είναι το πρώτο στοιχείο που θα τοποθετήσετε στην ουρά.
αν εντολή == "dequeue":
ουρά.pop(0)
Εμπρός
Προχωρώντας, γράψτε τον κωδικό για να εκτυπώσετε το στοιχείο στο μπροστινό μέρος της ουράς. Απλώς εκτυπώστε το 0ο ευρετήριο της ουράς.
αν εντολή == "εμπρός":
ουρά εκτύπωσης[0])
Οπισθεν
Όπως και ο κωδικός για την μπροστινή λειτουργία, για να εκτελέσετε την πίσω λειτουργία, εκτυπώστε το στοιχείο στο τελευταίο ευρετήριο. Για να το κάνετε αυτό χρησιμοποιήστε πρώτα τη συνάρτηση len() στην ουρά και στη συνέχεια αφαιρέστε 1 από αυτήν για να βρείτε τον τελευταίο δείκτη.
αν εντολή == "όπισθεν":
εκτύπωση (ουρά[len (ουρά) - 1])
Τυπώνω
Τέλος, γράψτε τον κωδικό για την εντολή εκτύπωσης. Απλώς εκτυπώστε τη λίστα χρησιμοποιώντας το πρότυπο της Python Τυπώνω() λειτουργία.
αν εντολή == "Τυπώνω":
ουρά εκτύπωσης)
Εάν το κείμενο που εισάγει ο χρήστης δεν ταιριάζει με μια υποστηριζόμενη εντολή, βγείτε από τον βρόχο while χρησιμοποιώντας μια εντολή break. Ο τελικός κώδικας θα πρέπει να μοιάζει με αυτό:
ουρά = []
ενώΑληθής:
εντολή = είσοδος("Τι θέλεις να κάνεις;\n")αν εντολή == "ουρά":
ουρά = int (εισαγωγή("Εισαγάγετε το στοιχείο στο Enqueue:"))
ουρά.append (ουρά)
ελιφ εντολή == "dequeue":
ουρά.pop(0)
ελιφ εντολή == "Τυπώνω":
ουρά εκτύπωσης)
ελιφ εντολή == "εμπρός":
ουρά εκτύπωσης[0])
ελιφ εντολή == "όπισθεν":
εκτύπωση (ουρά[len (ουρά)-1])
αλλού:
Διακοπή
ουρά εκτύπωσης)
Εκτελέστε το πρόγραμμα για να δοκιμάσετε τις διάφορες λειτουργίες ουράς. Χρησιμοποιήστε την εντολή εκτύπωσης για να δείτε πώς επηρεάζουν την ουρά σας. Τώρα δημιουργήσατε τη δική σας απλή υλοποίηση ουράς στην Python.
Η ουρά είναι μόνο μία από τις πολλές χρήσιμες δομές δεδομένων
Η έννοια της δομής δεδομένων είναι ζωτικής σημασίας που πρέπει να κατακτήσει κάθε φοιτητής επιστήμης υπολογιστών. Το πιθανότερο είναι ότι μπορεί να έχετε ήδη μάθει ή να έχετε εργαστεί με ορισμένες βασικές δομές δεδομένων, όπως πίνακες ή λίστες.
Οι συνεντευξιαζόμενοι τείνουν επίσης να κάνουν ερωτήσεις σχετικά με δομές δεδομένων, οπότε αν θέλετε να κάνετε μια υψηλά αμειβόμενη δουλειά προγραμματισμού, θα χρειαστεί να αναβαθμίσετε τις γνώσεις σας σχετικά με τις δομές δεδομένων.