„Dinamikus adatszerkezetek tutorial” változatai közötti eltérés
| 110. sor: | 110. sor: | ||
Egyszerű feladat, nem is foglalkoznék vele sokat. | Egyszerű feladat, nem is foglalkoznék vele sokat. | ||
<pre> | |||
tmp=lista; | |||
while (tmp != NULL) | |||
{ | |||
/* | |||
Ide írjuk, amit minden listaelemmel meg szeretnénk csinálni, | |||
pl. összeadni az értékeket, vagy összehasonítani őket egy | |||
másik értékkel (= keresés); | |||
*/ | |||
tmp=tmp->next; // azaz vesszük a következő listaelem címét | |||
// és azt használjuk tovább | |||
} | |||
</pre> | |||
===Műveletek listaelemekkel=== | ===Műveletek listaelemekkel=== | ||
| 133. sor: | 134. sor: | ||
<pre> | <pre> | ||
/-----\ | /-----\ /-----\ /-----\ /-----\ | ||
|Aprev|---->| | |Aprev |---->| A |----> ... | Bprev |---->| B |----> ... | ||
\-----/ | \-----/ \-----/ \-----/ \-----/ | ||
</pre> | </pre> | ||
A-t és B-t szeretnénk megcserélni. Hát itt van: | A-t és B-t szeretnénk megcserélni. Hát itt van: | ||
<pre> | |||
Aprev->kov = B; | |||
tmp1 = A->kov; | |||
A->kov = B->kov; | |||
B->kov= tmp1; | |||
Bprev->kov = A; | |||
</pre> | |||
Az eredmény: | Az eredmény: | ||
<pre> | <pre> | ||
/-----\ | /-----\ /-----\ /-----\ /-----\ | ||
|Aprev|---->| | |Aprev |---->| B |----> ... | Bprev |---->| A |----> ... | ||
\-----/ | \-----/ \-----/ \-----/ \-----/ | ||
</pre> | </pre> | ||
====Listaelem beszúrása (C-t B és A közé)==== | ====Listaelem beszúrása (C-t B és A közé)==== | ||
<pre> | <pre> | ||
/-----\ /-----\ | |||
... ---->| | ... ---->| A |---->| B |----> ... | ||
\-----/ \-----/ | |||
</pre> | </pre> | ||
Egyszerű: (C az új elem) | Egyszerű: (C az új elem) | ||
<pre> | |||
A->kov=C; | |||
C->kov=B; | |||
</pre> | |||
...és kész. | ...és kész. | ||
| 177. sor: | 178. sor: | ||
Az előző ábrán, kitörölni B-t a következő: | Az előző ábrán, kitörölni B-t a következő: | ||
<pre> | |||
/ | /* A B-t akarjuk kitörölni. Eltesszük a B utáni elem címét: */ | ||
ELEM | ELEM* temp = B->kov; | ||
/* Most felszabadítjuk a B által foglalt helyet, mert már nincs rá szükség | /* Most felszabadítjuk a B által foglalt helyet, mert már nincs rá szükség */ | ||
free(B); | free(B); | ||
/ | /* És beállítjuk A következő mutatójátt a B utáni elemre */ | ||
A->kov=temp; | A->kov = temp; | ||
</pre> | |||
Ilyen egyszerű. | Ilyen egyszerű. | ||
| 195. sor: | 196. sor: | ||
Sokféle képpen végrehajtható, itt egy primitív példa. A módszer, hogy páronként összehasonlítjuk az elemeket, és ha az adott rendezése elv szerint inverzióban állnak, megcseréljük őket. Aztán kezdjük előről az egészet, mindaddig, amíg el nem értük a lista végét úgy, hogy nem kellett cserélni: | Sokféle képpen végrehajtható, itt egy primitív példa. A módszer, hogy páronként összehasonlítjuk az elemeket, és ha az adott rendezése elv szerint inverzióban állnak, megcseréljük őket. Aztán kezdjük előről az egészet, mindaddig, amíg el nem értük a lista végét úgy, hogy nem kellett cserélni: | ||
<pre> | |||
pELEM rendez(pELEM lista) | pELEM rendez(pELEM lista) | ||
{ | { | ||
| 227. sor: | 228. sor: | ||
} | } | ||
</pre> | |||
Az algoritmus értelemszerűen kis változtatással átírható csökkenő sorrendre, vagy más tipusu adatok rendezésére. | Az algoritmus értelemszerűen kis változtatással átírható csökkenő sorrendre, vagy más tipusu adatok rendezésére. | ||
| 234. sor: | 235. sor: | ||
Ennyit a láncolt listákról. | Ennyit a láncolt listákról. | ||
==Fák== | ==Fák== | ||