Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> C /C + + Προγραμματισμός

Πώς να κάνω μια λειτουργία Queue στο C Σύνταξη

Προγραμματιστές χρησιμοποιούν ουρές για να αντιπροσωπεύουν τις δομές δεδομένων που λειτουργούν από την First In , First Out ( FIFO ) κατευθυντήρια γραμμή . Αυτό σημαίνει ότι όλα τα δεδομένα που έχουν εισαχθεί στη δομή θα προσθέσει σε μια λίστα δεδομένων , καθώς και τα δεδομένα που έχει στη λίστα το μεγαλύτερο θα είναι το πρώτο που πρέπει να αφαιρεθεί . Στη γλώσσα προγραμματισμού C , ένας προγραμματιστής υλοποιεί καλύτερα μια βασική μορφή αυτής της δομής χρησιμοποιώντας μια συνδεδεμένη λίστα και διάφορες δείκτες για να διατηρηθεί η σειρά των δεδομένων. Οδηγίες
Η 1

Δημιουργήστε τη δομή του κόμβου δεδομένων και τη δομή καταλόγου . Για την συνδεδεμένη λίστα να λειτουργήσει ως μια ουρά , ο κατάλογος πρέπει να περιέχει κόμβους ικανά αναφορά στον επόμενο κόμβο στη λίστα και δύο δείκτες που αναφέρονται την αρχή και το τέλος της λίστας . Αυτές οι δομές παραδείγματος δείχνουν ένα βασικό πρότυπο για τον κατάλογο Κόμβοι και τη δομή Ουρά :

struct node { int

δεδομένων ?

Struct * κόμβου επόμενη?

} ?

struct { queue_list

struct node * πρώτα? //δείκτη στο πρώτο στοιχείο

struct node * τελευταία ? //δείκτη στο τελευταίο στοιχείο

} 2

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

void insert ( struct * ουρά q , τιμή τύπου int ) {

struct node * newnode = malloc ( sizeof ( struct node ) ) ?

newnode - > data = αξία ?

newnode - > επόμενο = NULL?

αν ( q - > πρώτη == NULL ) {

q - > first = q - > τελευταία = newnode ? //εάν η λίστα είναι κενή, το πρώτο και το τελευταίο = newnode

}

else {

q - > τελευταία > επόμενο = newnode ? //προσαρτήσει newnode μετά το τελευταίο στοιχείο

q - > τελευταία = τελευταία > επόμενο ? //σημείο " τελευταία " δείκτη στο νέος κόμβος

} }


εικόνων 3

Εφαρμογή έναν αλγόριθμο αφαίρεσης . Ο αλγόριθμος αυτός θα λάβει την τιμή από τον πρώτο κόμβο στον κατάλογο . Στη συνέχεια , θα δείξει την «πρώτη» δείκτη στον επόμενο κόμβο και να διαγράψετε τον πρώτο κόμβο . Αυτό θα κάνει το επόμενο κόμβο η νέα πρώτη θέση στη λίστα, έτοιμο για αφαίρεση. Το παρακάτω παράδειγμα δείχνει έναν αλγόριθμο για να επιτευχθεί αυτό :

int αφαίρεση ( struct * ουρά q ) {

int value = q - > πρώτη > δεδομένα ?

struct node * temp = q - > πρώτα?

q - > first = q - > πρώτη > επόμενο ? //μετακινεί τον πρώτο δείκτη στο επόμενο στοιχείο

δωρεάν ( temp ) ? //διαγράφει το παλιό πρώτο κόμβο

επιστρέφει τιμή ? //επιστρέφει την πρώτη τιμή ?

}
Η 4

να αναγνωρίσει και να χρησιμοποιήσει μια ουρά . Ο προγραμματιστής μπορεί να δηλώσει μια ουρά ως μεταβλητή τύπου "ουρά struct " και να χρησιμοποιήσετε τις λειτουργίες που ορίζονται για να προσθέσετε και να αφαιρέσετε αντικείμενα . Το παρακάτω παράδειγμα δείχνει πώς να δηλώσει και να χρησιμοποιήσετε μια δομή ουράς :

int main ( ) { struct

ουρά q ?

Εισάγετε ( & q , 5) ? //Χρήσεων μια αναφορά σε " q " για να αποφευχθεί ρηχά αντίγραφα

εισάγετε ( & q , 6 ) ?

int x = αφαίρεση ( & q ) ? //x = 5
Η

Η

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα