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

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

Πώς να δημιουργήσετε μια συνδεδεμένη λίστα σε C

Στο C , μια συνδεδεμένη λίστα σας επιτρέπει να δημιουργήσετε μια λίστα χωρίς να έχουν καταλήξει μπροστά από το χρόνο πόσο καιρό θα μπορούσε να είναι , και χωρίς σπατάλη μνήμης με τη χορήγηση στοιχείων που δεν έχουν ακόμη . Το μειονέκτημα είναι ότι θα πρέπει να κάνει όλη τη δουλειά για την οργάνωση και τη διαχείριση του καταλόγου στη μνήμη . Οδηγίες
Δημιουργήστε το Δομές Δεδομένων
Η 1

Επιλέξτε ένα όνομα , και στη συνέχεια χρησιμοποιήστε typedef για να το καθορίσει . Κάθε συνδεδεμένη λίστα , θα χρειαστεί μια δομή , ακόμη και αν έχει μόνο μια μεταβλητή : typedef struct

 product_data PRODUCT_DATA ? 
2

Καθορίστε τη δομή . Το τελευταίο στοιχείο θα πρέπει να είναι ένας δείκτης προς τον τύπο που μόλις ορίστηκε , και ονομάστηκε "επόμενο" :

 struct { int product_data product_code ? Int product_size ? PRODUCT_DATA * επόμενη? } ? 
Η 3

Διαθέστε δύο δείκτες σε αυτή τη δομή δεδομένων , την προετοιμασία τους για την NULL , για να είναι ο κατάλογος " κεφάλι " και " ουρά " :

 PRODUCT_DATA * products_head = NULL? PRODUCT_DATA * products_tail = NULL? 

Προσθήκη στη Λίστα
Φτηνές 4

Διαθέστε μια προσωρινή μεταβλητή που είναι ένας δείκτης στη δομή δεδομένων :

 PRODUCT_DATA * newproduct ? 
5

Χρησιμοποιήστε malloc ( ) για να δημιουργήσετε ένα νέο στοιχείο , πάντα τον έλεγχο για ένα λάθος :

 αν ( ( newproduct = malloc ( sizeof ( PRODUCT_DATA ) ) ) == NULL) { ματαίωση ( ) ? } 
6

Συμπλήρωση πεδίων του νέου στοιχείου . Ρυθμίστε το " επόμενο" πεδίο στο NULL :

 newproduct - > product_code = newcode ? Newproduct - > product_size = newsize ? Newproduct - > επόμενο = NULL? Σελίδα 7 

Ορίστε τη μεταβλητή της κεφαλής . Αν η μεταβλητή της κεφαλής είναι NULL , αυτό είναι το πρώτο στοιχείο που προστίθεται στη λίστα , έτσι ορίσετε τη μεταβλητή κεφάλι να επισημάνω σε αυτό :

 αν products_head = newproduct ? Τετάρτη 8 

Προετοιμαστείτε για μια διαφορετική ( products_head ! ) μεταβλητή . Σε άλλες περιπτώσεις , οι μεταβλητές ουρά πόντους στο τελευταίο στοιχείο στη λίστα , που έτσι ώστε την επόμενη αξία του να δείχνει προς το νέο στοιχείο :

 άλλο products_tail - > επόμενο = newproduct ? Τετάρτη 9 

Ενημέρωση της ουράς σημείο στο νέο τελευταίο στοιχείο , σε κάθε περίπτωση :

 products_tail = newproduct ? 
Η πρόσβαση στη λίστα

10

Δημιουργήστε μια άλλη προσωρινή μεταβλητή που δείχνει τη δομή των δεδομένων :

 PRODUCT_DATA * προϊόν ? 
11

Ορίστε προσωρινή μεταβλητή σας με τη μεταβλητή της κεφαλής :

 προϊόν = products_head ? Τετάρτη 12 

Loop μέσα από τα στοιχεία , ελέγχοντας κάθε ένα και στη συνέχεια τη ρύθμιση της προσωρινής μεταβλητής στην επόμενο δείκτη να διασχίσει στο επόμενο :

 ενώ (προϊόν ) {if (προϊόν - > product_code = 15 ! ) { = προϊόν προϊόντα > επόμενο ? } } 
13

Ελέγξτε αν η μεταβλητή είναι NULL . Αν ναι , έχετε ποτέ δεν βρήκε το στοιχείο :

 εάν η επιστροφή 0 ? ( Προϊόν! ) . Διαφορετικά, επισημαίνει το στοιχείο που έψαχναν για : 
 επιστρέψετε το προϊόν - > product_size ? 
Η Clean Up εργασία σας

14

δεσμεύσει τη λίστα όταν τελειώνει το πρόγραμμά σας , όπως δεν είναι όλα τα λειτουργικά συστήματα θα χειριστεί αυτό αυτόματα
Η 15

Loop όσο η μεταβλητή κεφάλι δεν είναι NULL : .

 ενώ ( products_head ) { Τετάρτη 16 

Κατάστημα επόμενο δείκτη της στην η μεταβλητή προσωρινά ουρά :

 products_tail = products_head - > επόμενο ? Τετάρτη 17 

δεσμεύσει το στοιχείο :

 δωρεάν ( products_head ) ? Τετάρτη 18 

Ρυθμίστε το δείκτη κεφάλι στο δείκτη έχετε αποθηκεύσει στο βήμα 4 :

 products_head = products_tail ? } 

Η

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

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