C: Hvordan fungerer struct node * neste? [lukket]

Stengt . Dette spørsmålet trenger detaljer eller klarhet . Det aksepteres for øyeblikket ikke svar.

Kommentarer

  • Bare det å erklære det som Node* får det ikke til å peke noe sted, det forteller bare kompilatoren at det ' en peker til noen Node (eller ikke Node i det hele tatt). Det må være faktisk kode som setter next -pekeren for å peke til neste Node. Er det det du var forvirret om?
  • Siden det ikke (ennå) er struct Node, finnes det ikke noe medlem av det. Dermed peker ingen medlemmer noe sted.

Svar

Koden din er bare en liten del av en lenket liste.

Tanken er at listen din består av n forekomster av strukturen du kalte «Node». Du trenger en peker til FØRSTE av dem, denne pekeren forteller deg minneplasseringen til denne første strukturen (du ber vanligvis om plass til dette manuelt med malloc). Strukturen til denne minneblokken er definert av din struktur «Node». Den forteller deg at det først er noen byte for int (sizeof int forteller deg hvordan mutch) og så er det noen byte for en adresse (dette er pekeren din «neste»). På det siste elementet i den koblede listen bruker du vanligvis null som verdi for neste, på denne måten kan du sjekke om det aktive elementet er det siste. For å legge til et element i listen din må du malloc minnet for det og endre neste peker til det siste elementet til minneplasseringen malloc ga ut. (Og ikke glem å sette neste peker på elementet du nettopp opprettet til null.)

På denne måten fungerer en koblet liste. Håper dette hjelper litt! bilde av koblet liste

Kommentarer

  • Egentlig ville det vært riktigere å ha pilen fra " neste " til " Objekt " (eller kanskje enda bedre, øverst til venstre i neste boks). Slik det ser ut, ser det ut til at det ' peker på " neste " medlem av strukturen, men i virkeligheten peker den ' på den neste datainstansen ' s base-adresse. Du kan også velge hva det endelige elementet ' s " neste " skal peke på; det kan peke på f.eks. NULL (i så fall kan listen bare krysses i en retning), eller den kan peke på det første elementet i listen (danne en sirkulær koblet liste).
  • Du kan selvfølgelig også ha hvert medlem av listen peker både på " neste " og " forrige " element i listen. Dette krever litt mer bokføring når du endrer listen, men gjør det mulig å krysse listen i hvilken som helst retning som kan være fordelaktig ved lesing. Som med alt annet innen ingeniørarbeid, er det ' en avveining.

Svar

Dette er en del av en type definisjon. Det i seg selv peker ikke på noe, av samme grunn som at du ikke kan sette en ekte sofa og TV inne i en stue tegnet på et sett med tegninger for et hus. Den spesifiserer ganske enkelt «dette er hva som skal gå her.»

Måten det peker på neste node i en koblet liste er at når noen faktisk oppretter nodene, tildeler de en verdi til feltet beskrevet av den definisjonen, som er en peker som inneholder adressen til en annen Node.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *