title image


Smiley Listen,Zeiger: ausführliche Kommentare erwünscht
Hallo!

Bin nen Anfänger und brauche bei folgenden Programmen und Fragmenten eure Hilfe. Sieht anfangs nach einer großen Menge aus, ist aber nicht so schwierig hoffe ich. Trotzdem bitte ich euch, es so zu formulieren, dass man es auch als Laie verstehen kann.



#include



struct Listenelement { //Was genau passiert in diesem Block?

int Nutzinfo;

Listenelement* weiter;

};



Listenelement* neueListe(int info) { // wozu gehört *?

// Wie liest man die letzte Zeile?

Listenelement* el = new Listenelement; // Was bewirkt diese Zeile?

el->Nutzinfo = info;

el->weiter = NULL;

return el;

}



bool istLeer(Listenelement* L) {

return (L==NULL);

}



Listenelement* anDenAnfang(Listenelement* L, int info){

//Parameter der Funktion: ist L ein Zeiger oder eine Liste?

//Wie ist der Zusammenhang mit Listenelement?

if (istLeer(L))

return neueListe(info);



Listenelement* el = new Listenelement;

el->Nutzinfo = info;

el->weiter = L;

L = el;

// Wie ist der Zusammenhang zwischen L und el? Am besten bildlich

//erklären.

return L;

}



void gibAus(Listenelement* L) {

Listenelement* el = L;

if(istLeer(L))

cout << "keine Werte";

else {

while (el != NULL) {

cout Nutzinfo << ' ';

el = el->weiter;

}

}

cout << endl;

}



int main(int argc, char* argv[]) // bei diesem main-//Block verstehe

//ich die einzelnen Schritte und das Ziel nicht. Wenns

//geht, bitte das ganze Ding erklären. Vor allem die

//übergebenen Parameter argc...

{

Listenelement* l = NULL;

Listenelement* leereListe = NULL;



cout << "l: ";

gibAus(l);

cout << "leereListe: ";

gibAus(leereListe);

l = neueListe (4);

l = anDenAnfang (l, 3);

l = anDenAnfang (l, 2);

l = anDenAnfang (l, 1);

cout << "l: ";

gibAus(l);

if (istLeer(l))

cout << "l ist leer." << endl;

else

cout << "l ist nicht leer." << endl;

if (istLeer(leereListe))

cout << "leereListe ist leer." << endl;

else

cout << "leereListe ist nicht leer." << endl;

cout << "l: ";

gibAus (l);



return 0;

}



// Jetzt Fragmente eines anderen Programms

int zaehlerekursiv(Listenelement* L){

if (istLeer(L))

return 0;

else return (1+zaehlerekursiv(L->weiter)); //hier wird

//ja gar nix

//gezählt, oder? Bitte diese

//Zeile genau erklären.

}

int nterEintrag(Listenelement* L,int n){

Listenelement* el=L; // wozu dient diese Zeile?

if (zaehle(L)
return -1;

else{

int a=1;

while (a!=n){

el=el->weiter;

a++;}

return el->Nutzinfo;

}}



1 // neues Programm

2 int main (){

3 int A=1,B=-99;

4 int *ZeigerA = &A, *ZeigerB //zeigt ZeigerA jetzt auf A?Was macht

//ZeigerB?

5 *ZeigerA=B;

6 B=B*B;

7 ZeigerB=&B;// warum hier kein * wie in Zeile 4?! Bitte genau

//erklären.

8 *ZeigerA=*ZeigerB;

return 0;

}







geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: