In C maken , een gelinkte lijst kunt u een lijst maken zonder de beslissing van tevoren hoe lang het zou kunnen zijn , en zonder verspilling van geheugen door het toewijzen van elementen die je nog niet hebt . Het nadeel is dat je moet al het werk van de lijst in het geheugen van het organiseren en beheren van doen . Instructies Maak de Data Structure 1 Kies een naam , gebruik dan typedef om het te definiëren . Elke gekoppelde lijst zal een structuur nodig hebben , zelfs als het slechts een variabele : typedef struct product_data PRODUCT_DATA ; 2 Definieer de structuur . Het laatste element moet een pointer naar het type dat u gewoon gedefinieerd , en de naam " next " te zijn : struct product_data { int product_size ; PRODUCT_DATA * volgende ; int product_code } ; 3 toewijzen twee verwijzingen naar deze datastructuur , initialiseren van hen op NULL , aan de lijst "kop " en "staart" zijn : PRODUCT_DATA * products_head = NULL ; PRODUCT_DATA * products_tail = NULL ; In de lijst < br > Goedkope 4 Wijs een tijdelijke variabele dat is een pointer naar de datastructuur : PRODUCT_DATA * newproduct ; Gebruik malloc 5 ( ) om een nieuw element te maken , altijd te controleren op een fout : if ( ( newproduct = malloc ( sizeof ( PRODUCT_DATA ) ) ) == NULL ) { abort ( ) ; } 6 Bevolken velden het nieuwe element . Ingesteld zijn gebied " next " om NULL : newproduct - > product_code = newcode ; newproduct - > product_size = newsize ; newproduct - > volgende = NULL ; 7 Stel de kop variabele . Als de kop variabele NULL is , dit is het eerste element toegevoegd aan de lijst , dus stel het hoofd variabele om te wijzen op het : als products_head = newproduct ; 8 Bereid je voor op een andere ( products_head ! ) variable . In andere gevallen , de staart variabele wijst naar het laatste item op de lijst, dus stel de volgende waarde te wijzen op het nieuwe item: anders products_tail - > volgende = newproduct ; 9 Werk de staart te wijzen op de nieuwe laatste element , in beide gevallen : products_tail = newproduct ; Toegang tot de lijst met 10 Maak nog een tijdelijke variabele wijst naar de datastructuur : PRODUCT_DATA * product ; 11 Stel uw tijdelijke variabele aan het hoofd variabele : product = products_head ; Loop 12 door de elementen , het controleren van elk een en dan het instellen van de tijdelijke variabele aan de volgende pointer te doorkruisen naar de volgende : terwijl ( product ) { if ( ! product - > product_code = 15 ) { product = product - > volgende ; } } Controleer 13 als de variabele NULL . Als dat zo is , je nooit gevonden het item : als return 0 ; ( artikel! ) . Anders , het wijst op het item dat u zoekt : terugkeer product - > product_size ; Clean Up Your Work 14 deallocate de lijst wanneer uw programma eindigt , zoals niet alle besturingssystemen zal dit afhandelen automatisch Loop 15 , zolang de kop variabele is niet NULL : . terwijl ( products_head ) { Store 16 zijn volgende pointer in de staart variabele tijdelijk : products_tail = products_head - > volgende ; 17 deallocate het element : gratis ( products_head ) ; 18 Stel het hoofd pointer naar de aanwijzer die u hebt opgeslagen in stap 4 : products_head = products_tail ; }
|