/* Koen Noens * oef linked list * blz 232 */ #include #include struct Woord { char value [20]; Woord *p; }; void print1 (const Woord * zin); void print2 (const Woord * zin); void print1( const Woord * zin ) { /** * printen van een linked list * pointer loopt van start naar einde (NULL) */ while( zin != NULL ) { cout << zin -> value << endl; zin = zin -> p; /* naar volgende woord : het adres daarvan * zit in de pointer van het huidige woord */ } } void print2( const Woord * zin ) { /** * printen van een linked list * pointer loopt van Null naar begin */ while( zin != NULL ) { cout << zin -> value << endl; zin = zin -> p; /* naar volgende woord : het adres daarvan * zit in de pointer van het huidige woord */ } } void main() { Woord * start=NULL; //voor linked list Woord * hulp; char zin [120]; // temp : ingevoerde zin char woord [20]; char * z = zin; // temp : doorlopen van ingevoerde zin char * w = woord; // temp : doorlopen van woord in zin int iW = 0; // aantal woorden tellen ter controle // zin inlezen in array cout << "schrijf een zin\n"; cin.getline(zin,120); //woord per woord inlezen in een linked list while(*z) { // spaties voor het woord : overslaan while( *z == ' ' ) { z++; } //zin overlopen (tot spatie, of einde van de zin) //woord letter per letter in hulpvariabele zetten while(*z != ' ' && *z) { *w = *z; w++; z++; }; //sluit het woord af met een \0 *w ='\0'; //controle : aantal woorden tot hier toe //cout << "aant woorden : " << iW++ << endl; /* copieer het woord naar member van een struct * en zet die in een linked list */ //maak een nieuwe instantie en kopieer hulp = new Woord; strcpy( hulp -> value, woord ); //invoegen in lijst hulp -> p = start; start = hulp; } //printen met optie 1, zie functiedefenitie print1(start); }