In C erlaubt eine verkettete Liste , eine Liste ohne zu entscheiden, vor der Zeit , wie lange könnte es schaffen , und ohne Verschwendung von Speicher Zuweisung Elemente, die Sie noch nicht haben . Der Nachteil ist, dass man all die Arbeit der Organisation und Verwaltung der Liste im Speicher zu tun haben. Anleitung
Erstellen der Datenstruktur
1
Wählen Sie einen Namen , dann verwenden Sie typedef zu definieren . Jede verkettete Liste benötigen eine Struktur , auch wenn es nur eine Variable :
typedef struct product_data PRODUCT_DATA ; Seite 2 definieren die Struktur. Das letzte Element sollte ein Zeiger auf den Typ, den Sie gerade definiert haben , und mit dem Namen " next" sein :
struct product_data { int product_size ; PRODUCT_DATA * next ; } int product_code ;
3 Weisen zwei Hinweise zu dieser Datenstruktur initialisiert sie auf NULL , um die Liste "Kopf" und "Schwanz" sein :
PRODUCT_DATA * products_head = NULL; PRODUCT_DATA * products_tail = NULL;
zur Liste hinzufügen
4 Weisen eine temporäre Variable , die einen Zeiger auf die Datenstruktur der Umgebung:
PRODUCT_DATA * newproduct ;
5 Nutzungsbedingungen malloc (), um ein neues Element zu erstellen , immer die Überprüfung für einen Fehler :
if (( newproduct = malloc ( sizeof ( PRODUCT_DATA ))) == NULL) { abort () ;} Seite 6 des neuen Elements Felder füllen. Legen Sie die "next "-Feld auf NULL :
newproduct -> product_code = Neuer Code ; newproduct -> product_size = NewSize ; newproduct -> next = NULL; Seite 7 Stellen Sie den Kopf variabel. Wenn der Kopf Variable NULL ist, ist dies das erste Element der Liste hinzugefügt , so setzen Sie die Variable Kopf auf ihn verweisen :
wenn products_head = newproduct ; Seite 8 für einen anderen Prepare ( products_head ! ) Variable. In anderen Fällen , die Schwanz Variable zeigt auf das letzte Element in der Liste , so setzen Sie den nächsten Wert, der an der neuen Sache hinweisen :
sonst products_tail -> next = newproduct ;
9 Aktualisieren Sie den Schwanz auf das neue letzte Element , in jedem Fall :
products_tail = newproduct ;
auf die Liste
10 erstellen Sie eine weitere temporäre Variable zeigt auf die Datenstruktur:
PRODUCT_DATA * Produkt ; Seite 11 Stellen Sie Ihre temporären Variablen auf den Kopf variable :
product = products_head ;
12 Schleife durch die Elemente , die Überprüfung jedes festlegen und dann die temporäre Variable , um die next-Zeiger auf den nächsten durchqueren :
while ( Produkt ) { if (! Produkt -> product_code = 15) {product = Produkt -> next ;}}
13 überprüfen Sie, ob die Variable NULL . Wenn ja, fand nie den Artikel:
wenn return 0; ( Artikel! ) . Ansonsten verweist er auf die Artikel, den Sie gesucht haben : Return-Produkt -> product_size ;
aufräumen , wenn Ihr Programm endet Ihre Arbeit
14 Deallocate die Liste , wie nicht alle Betriebssysteme wird diese automatisch verarbeiten
15
Schleife , solange der Kopf Variable nicht NULL : .
while ( products_head ) {
16 Shop seine nächste Zeiger in der Schwanz Variable vorübergehend :
products_tail = products_head -> next ;
17 Deallocate das Element :
kostenlos ( products_head );
18 Stellen Sie den head-Zeiger auf den Zeiger Sie gespeichert Schritt 4 :
products_head = products_tail ;}