Linkitetyt listat
Opitte, miten linkitetyt listat toimivat ja miten toteutetaan lisäyksen ja poiston kaltaisia operaatioita.
Linkitetyt listat on ilmainen C Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C Academy-kurssilla on yhteensä 3 oppituntia.
Linkitetyt listat C:ssä
Linkitetty lista on dynaaminen tietorakenne, jossa alkiot (solmut) yhdistetään osoittimilla.
Tässä oppitunnissa opitte:
- Miten linkitetyt listat toimivat.
- Miten solmuja lisätään linkitettyyn listaan ja poistetaan siitä.
- Mitkä ovat linkitettyjen listojen edut taulukoihin verrattuna.

Esimerkki: linkitetyn listan solmun määrittäminen
C:ssä linkitetyn listan solmu määritellään struct-rakenteen avulla. Se sisältää datakentän ja osoittimen seuraavaan solmuun.
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *next;
};
int main() {
struct Node *head = NULL;
return 0;
}Solmun lisääminen alkuun
Kun haluatte lisätä uuden solmun linkitetyn listan alkuun:
- Luokaa uusi solmu.
- Asettakaa sen
next-osoittimeksi nykyinen alkuosoitin. - Päivittäkää alkuosoitin.
Esimerkki: solmun lisääminen alkuun
Tämä ohjelma lisää uuden solmun linkitetyn listan alkuun.
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *next;
};
void insertAtBeginning(struct Node **head, int newData) {
struct Node *newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = newData;
newNode->next = *head;
*head = newNode;
}
int main() {
struct Node *head = NULL;
insertAtBeginning(&head, 10);
printf("Inserted: %d\n", head->data);
return 0;
}Solmun poistaminen
Kun haluatte poistaa solmun linkitetystä listasta:
- Etsikää poistettava solmu.
- Päivittäkää edellisen solmun
next-osoitin. - Vapauttakaa poistetun solmun varaama muisti.
Esimerkki: solmun poistaminen
Tämä ohjelma poistaa solmun linkitetystä listasta.
#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *next;
};
void deleteNode(struct Node **head, int key) {
struct Node *temp = *head, *prev;
if (temp != NULL && temp->data == key) {
*head = temp->next;
free(temp);
return;
}
while (temp != NULL && temp->data != key) {
prev = temp;
temp = temp->next;
}
if (temp == NULL) return;
prev->next = temp->next;
free(temp);
}
int main() {
struct Node *head = (struct Node*)malloc(sizeof(struct Node));
head->data = 10;
head->next = NULL;
deleteNode(&head, 10);
return 0;
}Linkitettyjen listojen edut
Linkitetyillä listoilla on useita etuja taulukoihin verrattuna:
- Dynaaminen koko (kokoa ei tarvitse määrittää etukäteen).
- Tehokkaat lisäys- ja poistotoiminnot.
- Kiinteän koon aiheuttamaa muistin haaskausta ei synny.
Yhteenveto
Tässä oppitunnissa opitte:
- Mitä linkitetyt listat ovat ja miten ne toimivat.
- Miten solmuja lisätään ja poistetaan.
- Mitkä ovat linkitettyjen listojen edut taulukoihin verrattuna.
Seuraavaksi tutustutte pinoihin ja jonoihin C:ssä!

Opi C tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 39
- Oppitunnit
- 144
Usein kysytyt kysymykset
Onko oppitunti ”Linkitetyt listat” ilmainen?
Kyllä – oppitunnin ”Linkitetyt listat” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C Academy-kurssin, päivitä CoddyKit PROhon. C Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Linkitetyt listat”?
Opitte, miten linkitetyt listat toimivat ja miten toteutetaan lisäyksen ja poiston kaltaisia operaatioita. Harjoittelet C Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/3.
Kuinka kauan ”Linkitetyt listat”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä C Academy-oppitunnilla?
Kyllä. Jokainen C Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Linkitetyt listat
- Pinot ja jonot
- Puut ja graafit