Kommentit
Vastaa
Koodisi on vain pieni osa linkitetystä luettelosta.
Ajatuksena on, että luettelosi koostuu n solmun kutsumastasi strukturista. Tarvitset osoittimen ENSIMMÄISEEN niistä, tämä osoitin kertoo tämän ensimmäisen rakenteen muistipaikan (yleensä pyydät tilaa tälle manuaalisesti mallocilla). Tämän muistilohkon rakenteen määrittelee strukturoitu ”Solmu”. Se kertoo sinulle, että ensin on joitain tavuja intille (sizeof int kertoo kuinka mutch) ja sitten on joitain tavuja osoitteelle (tämä on osoitimesi ”seuraava”). Linkitetyn luettelon viimeisessä kohdassa u käytetään yleensä arvoa null seuraavana arvona, joten voit tarkistaa, onko aktiivinen nimikkeesi viimeinen. Jos haluat lisätä kohteen luetteloosi, sinun on yhdistettävä sen muisti ja vaihdettava viimeisen kohteen seuraava osoitin mallocin antamaan muistipaikkaan. (Ja älä unohda asettaa juuri luomasi kohteen seuraava osoitin nollaksi.)
Tällä tavalla linkitetty luettelo toimii. Toivottavasti tämä auttaa hieman!
kommentit
- Itse asiassa olisi oikeampi, jos nuoli " seuraavasta " osoittaisi kohtaan " Object " (tai ehkä vielä parempi, seuraavan ruudun vasemmassa yläkulmassa). Nykymuodossa näyttää siltä, että se ' osoittaa " seuraavaa " jäsentä strukturista, mutta todellisuudessa se ' osoittaa seuraavaan datan ilmentymään ' s perusosoitteeseen. Voit myös valita, mihin viimeisen elementin ' s " seuraavan " pitäisi osoittaa; se voi osoittaa esimerkiksi NULL (jolloin luetteloa voidaan kulkea vain yhteen suuntaan) tai se voi osoittaa luettelon ensimmäiseen elementtiin (muodostaen pyöreän linkitetyn luettelon).
- Voit tietysti myös kukin luettelon jäsen osoittaa sekä " seuraavaan " että luettelon edellinen " -elementti. Tämä vaatii hieman enemmän kirjanpitoa muutettaessa luetteloa, mutta sallii luettelon kulkemisen mihin tahansa suuntaan, mikä voi olla hyödyllistä luettaessa. Kuten kaikessa muussa tekniikassa, ' on kompromissi.
Vastaa
Tämä on osa tyypin määrittelyä. Se sinänsä ei osoita mihinkään, samasta syystä, että et voi laittaa aitoa sohvaa ja televisiota olohuoneeseen, joka on piirretty talon piirustusten joukolle. Siinä määritetään yksinkertaisesti ”tämän pitäisi mennä tänne”.
Se osoittaa linkitetyn luettelon seuraavaan solmuun, että kun joku todella luo solmut, hän antaa kentälle arvon määritelty kuva, joka on osoitin, joka sisältää toisen Node
osoitteen.
Node*
ei saa sitä osoittamaan mihinkään, vaan kertoo kääntäjälle, että se ' sa osoitin johonkinNode
(tai ei lainkaanNode
). On oltava todellinen koodi, joka asettaanext
osoittimen osoittamaan seuraavaanNode
. Onko sinusta hämmentynyt?struct Node
ei ole (vielä) yhtään jäsentä, sen jäseniä ei ole. Täten kukaan jäsen ei osoita minnekään.