Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuAki Saaristo Muutettu yli 9 vuotta sitten
1
Linkitetty lista Joukko alkioita jotka on kytketty toisiinsa linkeillä Listan alkio sisältää talletettavan datan ja linkin seuraavan alkioon Alkion lisääminen listan keskelle on helppoa Alkioihin ei voida viitata indeksin avulla vrt. taulukko Listan kokoa ei ole ennalta rajoitettu 911112 luku seuraava 1 NULL
2
Joitakin linkitetyn listan operaatioita 1. Alkion lisääminen listaan 2. Alkion poistaminen listasta 3. Listan läpikäynti 4. Listan pituuden palauttaminen 911112 luku seuraava 1 NULL pääosoitin
3
C-kielinen implementaatio struct alkio { int luku; struct alkio* seuraava; }; 911112 luku seuraava 1 NULL pääosoitin
4
Alkion lisääminen listan päähän void lisaa_paahan(struct alkio **paa, int luku) { struct alkio *uusiAlkio = (struct alkio *) malloc(sizeof(struct alkio)); uusiAlkio->luku = luku; uusiAlkio->seuraava = *paa; *paa = uusiAlkio;} 911112 luku seuraava 1 NULL *paa 4 uusiAlkio
5
Alkion lisääminen listan päähän void lisaa_paahan(struct alkio **paa, int luku) { struct alkio *uusiAlkio = (struct alkio *) malloc(sizeof(struct alkio)); uusiAlkio->luku = luku; uusiAlkio->seuraava = *paa; *paa = uusiAlkio;} 911112 luku seuraava 1 NULL *paa, uusiAlkio 4
6
Alkion lisääminen listan keskelle void lisaa(struct alkio *edeltaja, int luku) { struct alkio *uusiAlkio = (struct alkio *)malloc(sizeof(struct alkio)); uusiAlkio->luku = luku; uusiAlkio->seuraava = edeltaja->seuraava; edeltaja->seuraava = uusiAlkio; } 911112 luku seuraava 1 NULL pääosoitinedeltäjä 4 uusiAlkio
7
Alkion lisääminen listan keskelle void lisaa(struct alkio *edeltaja, int luku) { struct alkio *uusiAlkio = (struct alkio *)malloc(sizeof(struct alkio)); uusiAlkio->luku = luku; uusiAlkio->seuraava = edeltaja->seuraava; edeltaja->seuraava = uusiAlkio; } 911112 luku seuraava 1 NULL pääosoitin 4 uusiAlkio
8
Alkion poistaminen listan alusta void poista(struct alkio **listan_paa){ struct alkio *poistettava; poistettava=*listan_paa; *listan_paa = (*listan_paa)->seuraava; free(poistettava);} 911112 luku seuraava 1 NULL *listan_paa, poistettava
9
Alkion poistaminen listan alusta void poista(struct alkio **listan_paa){ struct alkio *poistettava; poistettava=*listan_paa; *listan_paa = (*listan_paa)->seuraava; free(poistettava);} 911112 luku seuraava 1 NULL poistettava*listan_paa
10
Alkion poistaminen listan keskeltä void poista(struct alkio *edeltaja){ struct alkio *poistettava; poistettava=edeltaja->seuraava; edeltaja->seuraava = poistettava->seuraava; free(poistettava);} 911112 luku seuraava 1 NULL pääosoitin, edeltäjä poistettava
11
Alkion poistaminen listan keskeltä void poista(struct alkio *edeltaja){ struct alkio *poistettava; poistettava=edeltaja->seuraava; edeltaja->seuraava = poistettava->seuraava; free(poistettava);} 911112 luku seuraava 1 NULL pääosoitin, edeltäjä poistettava
12
Listan läpikäynti struct alkio* nykyinen = paa; while (nykyinen != NULL) { /* tee jotain listan alkiolle (nykyinen->luku) */ nykyinen = nykyinen->seuraava; } 911112 luku seuraava 1 NULL pääosoitin, nykyinen
13
Listan läpikäynti struct alkio* nykyinen = paa; while (nykyinen != NULL) { /* tee jotain listan alkiolle (nykyinen->luku) */ nykyinen = nykyinen->seuraava; } 911112 luku seuraava 1 NULL pääosoitinnykyinen
14
Listan läpikäynti struct alkio* nykyinen = paa; while (nykyinen != NULL) { /* tee jotain listan alkiolle (nykyinen->luku) */ nykyinen = nykyinen->seuraava; } 911112 luku seuraava 1 NULL pääosoitinnykyinen
15
Listan pituuden palauttaminen int pituus(const struct alkio* paa) { int laskuri = 0; const struct alkio* nykyinen = paa; while (nykyinen != NULL) { laskuri++; nykyinen = nykyinen->seuraava; } return(laskuri); } for (nykyinen = paa; nykyinen != NULL; nykyinen = nykyinen->seuraava) laskuri++; return(laskuri);
16
Häntäalkio Nopeuttaa listan loppuun lisäämistä 911112 luku seuraava 1 NULL pääosoitinhäntäosoitin
17
Rengas Viimeisestä alkiosta osoitin ensimmäiseen alkioon 911112 luku seuraava 1 pääosoitinhäntäosoitin
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.