//--------------------------------------------------------------------- // Sýnislausn á dæmi 1 á Vikublaði 10 í Tölvunarfræði 2, vor 2005 // // Hjálmtýr Hafsteinsson, mars 2005 //--------------------------------------------------------------------- #include #include #include using namespace std; // Hnútur, ásamt smið struct node { int item; node* next; node(int x, node* t) { item = x; next = t; } }; // Prentar út eintengdan lista void prentaLista( node *h ) { for( node *p = h; p != NULL; p = p->next ) cout << p->item << " -> "; cout << "NULL" << endl << endl; } // Fallið býr til eintengdan lista með n hnútum og slembigildum // frá 0 og upp að rnd. Skilar bendi á fremsta hnútinn node *buatilLista( int n, int rnd ) { int i; node *p; // Búa eintengdan lista með slembigildum... p = NULL; for( i=0; inext; // Flytja h yfir á næsta delete p; // Eyða hnúti } } int sumKvrt( node *h ) { if( h == NULL ) return 0; return h->item * h->item + sumKvrt( h->next ); } int main() { // Upphafsstilla slemibitölugjafa srand( (unsigned)time( NULL ) ); // Búa til slembilist node *haus = buatilLista( 5, 10 ); // Sýna listann... prentaLista( haus ); // Finna summu kvaðrata... cout << "Summa kvadrata er " << sumKvrt( haus ) << endl; // Skila aftur minninu... eydaLista( haus ); return 0; }