Peruskäsite ja Rakenne
Linkitetty lista C-kielessä on yksinkertainen dynaaminen tietorakenne, joka koostuu alkioista eli solmuista. Jokainen solmu sisältää tietoa (kuten muuttujan tai olion) sekä osoittimen seuraavaan solmuun listassa.
Tältä näyttää tyypillinen solmu yksinkertaisessa linkitetyssä listassa C-kielessä:
main.c
1234struct Node { int data; // data in node struct Node* next; // pointer to next node };
Jos yrität luoda uuden solmun esiintymän seuraavan solmun osoittimen sijaan, saat virheen.
Kääntäjä ei pysty varaamaan muistia tällaiselle rakenteelle, koska se sisältää itsensä. Tämä on kuin yrittäisi katsoa itseään ulkopuolelta omilla silmillään.
Osoittimen käyttäminen ratkaisee tämän ongelman, koska kääntäjä tietää, kuinka paljon muistia osoitinmuuttujalle varataan.
Viimeisen solmun osoitin on aina NULL.
Swipe to start coding
Luo funktio createNode, joka varaa dynaamisesti muistia uudelle linkitetyn listan solmulle. Funktion tulee alustaa data-kenttä annetulla arvolla ja asettaa next-osoitin arvoon NULL.
Tämän jälkeen, main-funktiossa, luo useita solmuja, linkitä ne yhteen ja tulosta linkitetty lista.
createNode-funktion sisällä varaa muistia uudelle solmulle käyttäenmalloc-funktiota ja tyyppimuunna se muotoon(struct Node*).- Tarkista, epäonnistuiko muistinvaraus. Jos
newNodeonNULL, tulosta virheilmoitus ja palautaNULL. - Alusta uuden solmun
data-kenttävalue-parametrilla. - Aseta uuden solmun
next-osoitin arvoonNULL. - Palauta osoitin juuri luotuun solmuun.
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 4.35
Peruskäsite ja Rakenne
Pyyhkäise näyttääksesi valikon
Linkitetty lista C-kielessä on yksinkertainen dynaaminen tietorakenne, joka koostuu alkioista eli solmuista. Jokainen solmu sisältää tietoa (kuten muuttujan tai olion) sekä osoittimen seuraavaan solmuun listassa.
Tältä näyttää tyypillinen solmu yksinkertaisessa linkitetyssä listassa C-kielessä:
main.c
1234struct Node { int data; // data in node struct Node* next; // pointer to next node };
Jos yrität luoda uuden solmun esiintymän seuraavan solmun osoittimen sijaan, saat virheen.
Kääntäjä ei pysty varaamaan muistia tällaiselle rakenteelle, koska se sisältää itsensä. Tämä on kuin yrittäisi katsoa itseään ulkopuolelta omilla silmillään.
Osoittimen käyttäminen ratkaisee tämän ongelman, koska kääntäjä tietää, kuinka paljon muistia osoitinmuuttujalle varataan.
Viimeisen solmun osoitin on aina NULL.
Swipe to start coding
Luo funktio createNode, joka varaa dynaamisesti muistia uudelle linkitetyn listan solmulle. Funktion tulee alustaa data-kenttä annetulla arvolla ja asettaa next-osoitin arvoon NULL.
Tämän jälkeen, main-funktiossa, luo useita solmuja, linkitä ne yhteen ja tulosta linkitetty lista.
createNode-funktion sisällä varaa muistia uudelle solmulle käyttäenmalloc-funktiota ja tyyppimuunna se muotoon(struct Node*).- Tarkista, epäonnistuiko muistinvaraus. Jos
newNodeonNULL, tulosta virheilmoitus ja palautaNULL. - Alusta uuden solmun
data-kenttävalue-parametrilla. - Aseta uuden solmun
next-osoitin arvoonNULL. - Palauta osoitin juuri luotuun solmuun.
Ratkaisu
Kiitos palautteestasi!
single