000
31.01.2006, 21:48 Uhr
~hotwatermusic
Gast
|
nabend schön. ich hab nen problem wo ich nicht weiterkomme. ich muss lineare listen verstehen, leider ist mein verständnis im bereich progammierung und c++ im allgemeinen eher naja begrenzt.... es geht um folgende funktion:
C++: |
void einfuegVor(ZListEl &p, int i) /* Einfügen neues Listenelement vor *p (MIT Kopieren, daher kein Parameter kopf nötig) NEU: Angabe p als Referenz, damit p auch nach dem Aufruf auf dasselbe (logische) Listenelement zeigt */ { ZListEl neu;// es wird ein objekt neu vom typ ZlistEL erzeugt
neu=new ListEl;//neu wird jetzt speicherplatz zugewiesen mit den inhalten element i und // einem zeiger weiter der auf das nächste elment zeigt *neu=*p; // so wie ich es verstehe wird jetzt alles was im nachfolgendem element p // in neu reinkopiert p->zahl=i; //in p wird jetzt das element in reingeschrieben
p->weiter=neu;//der weiterzeiger von p zeigt jetzt auf das neue element
p=neu; // Veränderung p (s. Kommentar) }
|
der sinn dieser funktion ist es, in einer bestehenden linearen liste ein neues element, vor einem bestehenden element einzufügen.
sämtliche kommentare in diesem kurzen stückt quellcode sind von mir eingefügt
zur zeile: p->weiter=neu; vermute ich noch das dann ab dieser stelle, das neu in der liste einen platz weiterrutscht und p da es ja die elemente enthält die wir eintragen möchten nun das eigentlich einfuegVor() element ist. jetzt frage ich mich allerdings was hat diese zeile zu bedeuten:p=neu? wäre nett wenn mir wer helfen könnte grtz und schönen abend noch mr hwm |