Επιλέξτε το τύπο δεδομένων ουρά προτεραιότητας σας κατέχει . Αν αυτή είναι η πρώτη σας φορά γράφοντας μια ουρά προτεραιότητας , να επιλέξουν κάτι απλό , όπως ένα ακέραιο . 2
Δημιουργήστε έναν πίνακα για να χρησιμεύσει ως ουρά σας . Αν ο τύπος δεδομένων σας είναι ακέραιος , και θα θέλατε να κρατήσετε 10 αντικείμενα , σειρά σας θα δημιουργηθεί με τη χρήση κώδικα όπως αυτό :
int [ ] arr = new int [ 10 ] ?
Λάβετε νου ότι το 0 είναι ο πρώτος δείκτης του κάθε πίνακα. Για να αποκτήσετε πρόσβαση στο πρώτο δείκτη σύλλ , σας παραπέμπω στην arr [ 0 ] , και εγ [ 9 ], θα έχουν πρόσβαση στο τελευταίο δείκτη σύλλ . Σε αυτή την περίπτωση , arr [ 10 ] προκαλεί ένα σφάλμα .
Εικόνων 3
Καθορίστε τη λειτουργία ταξινόμησης . Θα χρησιμοποιηθεί αργότερα για να ωθήσει τα στοιχεία με τη σωστή σειρά . Η λειτουργία αυτή διαρκεί δύο εισόδους , τότε τα συγκρίνει . Εάν η πρώτη είσοδος έχει μία υψηλότερη τιμή , η συνάρτηση επιστρέφει 1 ? Εάν και οι δύο είσοδοι έχουν την ίδια αξία , επιστρέφει 0 ? Και αν η πρώτη είσοδος έχει μικρότερη τιμή , επιστρέφει -1 . Αν αυτή είναι η πρώτη σας φορά γράφοντας μια λειτουργία ταξινόμησης , και τον τύπο δεδομένων της επιλογής σας είναι ακέραιος αριθμός , θα πρέπει να ξεκινήσετε με αριθμητική σειρά , όπου οι χαμηλότερες αριθμοί έχουν μια χαμηλότερη τιμή . Ταξινόμηση με αριθμητική τιμή , ο κώδικας θα είναι κάπως έτσι :
αν ( πρώτο > δεύτερη ) επιστροφή 1?
Αν ( πρώτο == δεύτερη ) επιστροφή 0?
αν ( πρώτο <δευτερόλεπτο) επιστρέφει -1 ?
Αυτό λειτουργεί επίσης για άλλους τύπους δεδομένων Αριθμός , όπως δίκλινα και επιπλέει . Εάν χρησιμοποιείτε χορδές , μπορείτε να ταξινομήσετε κατά αλφαβητική σειρά .
Η 4
Ξεκινήστε τη λειτουργία ώθησης . Αυτό παίρνει μία είσοδο , το στοιχείο για να ωθήσει στην ουρά , και εξάγει τίποτα . Στην Java , εάν ο τύπος δεδομένων σας είναι ακέραιος , ο κώδικάς σας θα μοιάζει με αυτό :
public void ώθηση ( int in)
κωδικό σας θα είναι παρόμοια στις περισσότερες άλλες γλώσσες προγραμματισμού , συμπεριλαμβανομένων των C και C + + . «Κενό» σημαίνει ότι αυτή η λειτουργία θέληση τίποτα εξόδου .
5
Δημιουργήστε μια σειρά από το ίδιο μέγεθος με τη σειρά που χρησιμοποιείτε για την ουρά σας . Εάν η τρέχουσα σειρά σας μπορεί να κρατήσει 10 ακέραιοι , θα δημιουργήσει μια σειρά όπως αυτό :
int [ ] secondArray = new int [ 10 ] ?
Αυτή η δεύτερη σειρά θα γίνει αργότερα ουρά σας . Εάν η τελευταία καταχώρηση στο array σας είναι πλήρης , αυτό σημαίνει ότι έχετε χρησιμοποιήσει κάθε καταχώρηση στον πίνακα ? . Θα πρέπει να δημιουργείτε έναν πίνακα που είναι μία καταχώρηση μεγαλύτερο
Η 6
Συγκρίνετε την είσοδο σε κάθε στοιχείο στη σειρά σας , αρχίζοντας με την πρώτη , χρησιμοποιώντας τη λειτουργία ταξινόμησης . Πάντα κάνετε είσοδο ώθηση για το πρώτο στοιχείο που τοποθετείτε στη λειτουργία ταξινόμησης . Για να συγκρίνετε εισόδου ώθηση και το πρώτο αντικείμενο από σύλλ , ο κώδικάς σας θα μοιάζει με αυτό :
είδος ( σε , arr [ 0 ] ) ?
Εδώ , "σε" είναι το όνομα που δίνεται σε η μεταβλητή εισόδου από το βήμα 4
Αν αυτό επιστρέφει -1 , είσοδος θέσει ώθηση στο δεύτερο πίνακα: .
secondArray [ 0 ] = σε?
Διαφορετικά , αντιγράψτε το αρχείο στοιχείο από την πρώτη σειρά στη δεύτερη σειρά :
secondArray [ 0 ] = arr [ 0 ] ?
στη συνέχεια, συγκρίνετε εισόδου ώθηση στην ημερήσια διάταξη της πρώτης διάταξης :
είδος ( σε , arr [ 1 ] ) ?
Συνεχίστε αυτό έως ότου εισόδου ώθηση είναι εισαχθεί στο δεύτερο πίνακα ή έως ότου δεν υπάρχουν περισσότερα στοιχεία στην πρώτη σειρά . Στην τελευταία περίπτωση , εισαγωγή τόπου ώθηση ως το επόμενο στοιχείο στη δεύτερη σειρά .
Η 7
Αντιγράψτε το υπόλοιπο των στοιχείων από τον πρώτο πίνακα στο δεύτερο πίνακα . Τώρα εισόδου που ωθούν έχει τοποθετηθεί στο δεύτερο πίνακα, δεν έχετε καμία ανάγκη για τη λειτουργία ταξινόμησης . Από τώρα και στο εξής , χρησιμοποιήστε τη δεύτερη σειρά και όχι το πρώτο ? Η πρώτη σειρά είναι πλέον ξεπερασμένη . Με αυτό , η λειτουργία push είναι πλήρης.
8
Γράψτε τη λειτουργία pop . Αυτό δεν λαμβάνει εισροές , αλλά εξάγει ένα στοιχείο από την ουρά σας . Αν ο τύπος δεδομένων σας είναι ακέραιος , ο κώδικάς σας θα μοιάζει με αυτό :
public int pop ( )
Η δεύτερη λέξη , " int ", σημαίνει ότι αυτή η λειτουργία θα εμφανίσει ένας ακέραιος
Τετάρτη 9
Δημιουργήστε μια δεύτερη σειρά από το ίδιο μέγεθος με την τρέχουσα σειρά σας . Στη συνέχεια , αντιγράψτε το δεύτερο στοιχείο από την πρώτη σειρά στην πρώτη καταχώρηση στη δεύτερη σειρά , το τρίτο στοιχείο στη δεύτερη είσοδο της δεύτερης συστοιχίας , και ούτω καθεξής και ούτω καθεξής , μέχρι να μην υπάρχουν περισσότερες συμμετοχές . Μην αντιγράφετε το πρώτο στοιχείο στην πρώτη σειρά . Εάν σειρά σας περιέχει 4 αντικείμενα , τον κωδικό σας θα μοιάζει κάπως έτσι :
secondArray [ 0 ] = arr [ 1 ] ?
SecondArray [ 1 ] = arr [ 2] ?
secondArray [ 2 ] = arr [ 3] ?
Υπενθυμίζεται ότι ο πρώτος δείκτης ενός πίνακα είναι 0 . Αυτό σημαίνει ότι secondArray [ 0 ] είναι το πρώτο στοιχείο της secondArray , και εγ [ 1 ] είναι το δεύτερο στοιχείο σύλλ .
Η 10
Επιστροφή το πρώτο αντικείμενο από την πρώτη σειρά . Ο κώδικάς σας θα μοιάζει με αυτό :
επιστρέψει arr [ 0 ] ?
Όπως και με τη λειτουργία ώθησης , η δεύτερη σειρά είναι πλέον ουρά σας . Η λειτουργία pop έχει πλέον ολοκληρωθεί .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα