single
Linkitetyn Listan Läpikäynti ja Näyttäminen
Pyyhkäise näyttääksesi valikon
Kun olemme oppineet luomaan ja yhdistämään solmuja, meidän täytyy tarkistaa, että tällainen lista toimii oikein!
Tätä varten kirjoitetaan yksinkertainen funktio, joka näyttää koko listan.
Funktio vastaanottaa osoittimen muistialueeseen, jossa listan pään (ensimmäisen) solmun tiedot sijaitsevat.
void printList(struct Node* head) {}
Tämän jälkeen luodaan väliaikainen solmu current, jonka avulla käydään koko lista läpi. Current-solmun sisältö vastaa nykyisen listasolmun sisältöä.
struct Node* current = head;
Listan läpikäyntiin käytetään while(){} -silmukkaa tarvittavalla ehdolla, eli kunnes löytyy solmu, jonka next-kenttä on NULL.
Temp (väliaikainen) solmu toimii puskurisolmuna. Sitä tarvitaan nykyisen solmun sisällön väliaikaiseen tallentamiseen (ja poistamiseen). Jos tyhjennämme nykyisen solmun heti, menetämme yhteyden seuraavaan solmuun, mikä tarkoittaa, että pääsy listaan menetetään.
while (current != NULL) { }
printf("\n");
Silmukan sisällä näytetään nykyisen solmun data-kentän sisältö ja muutetaan next-kenttää siirtyäksemme seuraavaan solmuun.
printf("%d ", current->data);
current = current->next;
Heti kun solmu löytyy, jonka next-kenttä on NULL, silmukka lopettaa solmujen sisällön näyttämisen ja funktio päättyy.
Pyyhkäise aloittaaksesi koodauksen
Toteuta yksinkertainen yksisuuntainen linkitetty lista käyttäen dynaamista muistinvarausta. Tehtävänä on täydentää funktiot printList ja freeList.
-
Toteuta funktio
printList, jonka parametrina onstruct Node* head.- Määrittele
printList-funktion sisällä muuttujacurrentja aseta se osoittamaanhead-osoitteeseen. - Käytä
while-silmukkaa, joka jatkuu niin kauan kuincurrentei oleNULL. - Jokaisella silmukan kierroksella tulosta
current-muuttujandata-kenttä ja siirräcurrentseuraavaan solmuun. - Silmukan jälkeen tulosta rivinvaihto erottelemaan tuloste.
- Määrittele
-
freeList-funktion sisällä määrittele muuttujacurrentja aseta se osoittamaanhead-osoitteeseen.- Käytä
while-silmukkaa, joka jatkuu niin kauan kuincurrentei oleNULL. - Silmukan sisällä tallenna
currentväliaikaiseen muuttujaantemp. - Siirrä
currentseuraavaan solmuun. - Vapauta
temp-muuttujan osoittama muisti.
- Käytä
Ratkaisu
Kiitos palautteestasi!
single
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme