Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Peruskäsite ja Rakenne | Tietorakenteiden Toteuttaminen
C-Rakenteiden Hallinta

bookPeruskä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

main.c

copy
1234
struct 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.

Note
Huomio

Viimeisen solmun osoitin on aina NULL.

Tehtävä

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.

  1. createNode-funktion sisällä varaa muistia uudelle solmulle käyttäen malloc-funktiota ja tyyppimuunna se muotoon (struct Node*).
  2. Tarkista, epäonnistuiko muistinvaraus. Jos newNode on NULL, tulosta virheilmoitus ja palauta NULL.
  3. Alusta uuden solmun data-kenttä value-parametrilla.
  4. Aseta uuden solmun next-osoitin arvoon NULL.
  5. Palauta osoitin juuri luotuun solmuun.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 2
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

close

bookPeruskä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

main.c

copy
1234
struct 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.

Note
Huomio

Viimeisen solmun osoitin on aina NULL.

Tehtävä

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.

  1. createNode-funktion sisällä varaa muistia uudelle solmulle käyttäen malloc-funktiota ja tyyppimuunna se muotoon (struct Node*).
  2. Tarkista, epäonnistuiko muistinvaraus. Jos newNode on NULL, tulosta virheilmoitus ja palauta NULL.
  3. Alusta uuden solmun data-kenttä value-parametrilla.
  4. Aseta uuden solmun next-osoitin arvoon NULL.
  5. Palauta osoitin juuri luotuun solmuun.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 5. Luku 2
single

single

some-alt