Δημιουργήστε τη δομή του κόμβου δεδομένων και τη δομή καταλόγου . Για την συνδεδεμένη λίστα να λειτουργήσει ως μια ουρά , ο κατάλογος πρέπει να περιέχει κόμβους ικανά αναφορά στον επόμενο κόμβο στη λίστα και δύο δείκτες που αναφέρονται την αρχή και το τέλος της λίστας . Αυτές οι δομές παραδείγματος δείχνουν ένα βασικό πρότυπο για τον κατάλογο Κόμβοι και τη δομή Ουρά :
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
Η
Η
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα