Megjegyzések
Válasz
A kódod csak egy kis darab a linkelt listából.
Az elképzelés az, hogy a listád a node-nak nevezett struktúra n előfordulásából áll. Mutatóra van szükségük közülük ELSŐ, ez a mutató megmondja ennek az első struktúrának a memóriahelyét (ehhez a helyet általában manuálisan kéri a malloc segítségével). Ennek a memóriablokknak a struktúráját a “Node” struktúrája határozza meg. Azt mondja, hogy először van néhány bájt az int számára (az sizeof int megmondja, hogyan mutch), majd van néhány bájt egy címhez (ez a “következő” mutatója). A csatolt lista utolsó elemén u általában null értéket használ a következő értékhez, így ellenőrizheti, hogy az aktív elem az utolsó. Elem hozzáadásához a listához u be kell állítania a memóriát hozzá, és az utolsó elem következő mutatóját a malloc által kiadott memóriahelyre kell cserélnie. (És ne felejtsd el nullázni az imént létrehozott elem következő mutatóját.)
Így egy összekapcsolt lista működik. Remélem, ez segít egy kicsit!
megjegyzések
- Valójában helyesebb lenne, ha a " következő nyíl " nyílra mutatna " Object " (vagy talán még jobb, a következő mező bal felső sarkában). Jelenleg úgy néz ki, hogy ' s a " következő " tagra mutat de a valóságban ' a következő adatpéldányra mutat ' s alapcímre. Kiválaszthatja azt is, hogy a ' s " következő elem miként mutasson a következő " elemre; rámutathat pl. NULL (ebben az esetben a lista csak egy irányban haladhat), vagy a lista első elemére mutathat (kör alakú összekapcsolt listát alkotva).
- Természetesen megadhatja a lista minden tagja a " következő " és a a lista előző " eleme. Ez egy kicsit több könyvelést igényel a lista módosításakor, de lehetővé teszi a listán való haladást bármilyen irányban, ami előnyös lehet az olvasások során. Mint minden más, a mérnöki munkában, ez ' kompromisszumot jelent.
Válasz
Ez egy típusmeghatározás része. önmagában nem mutat semmire, ugyanazon okból kifolyólag, hogy nem lehet valódi kanapét és TV-t elhelyezni a nappali belsejében, amely egy ház tervrajzára van rajzolva. Egyszerűen meghatározza, hogy “mi az, aminek itt kellene lennie”.
A hivatkozott lista következő csomópontjára mutat, hogy amikor valaki ténylegesen létrehozza a csomópontokat, értéket rendel a mezőhöz. amelyet ez a definíció ír le, amely egy másik Node
címet tartalmazó mutató.
Node*
néven deklarálva nem válik sehova, csak azt mondja a fordítónak, hogy ' mutat valamilyenNode
mutatót (vagy egyáltalán nemNode
). Léteznie kell tényleges kódnak, amely anext
mutatót a következőNode
pontra állítja. Ezért zavart?struct Node
, ennek egyetlen tagja sem létezik. Így egyetlen tag sem mutat sehova.