#include #include #include #include #include struct list { list(char _n = 0, short _a = 0, list *_next = NULL) : n(_n), a(_a), next(_next) { } char n; short a; list *next; }; char random(); void sumLists(list* r, list *a, list *b); list* fillList(char index, list* next = NULL); const char N = 10; int main() { time_t t; srand((UINT) time(&t)); list *P = fillList(N), *Q = fillList(N), *R = new list(); sumLists(R, P, Q); return 0 * _getch(); } char random() { char r = rand() % (CHAR_MAX + 1 - CHAR_MIN) + CHAR_MIN; return r == 0 ? random() : r; }; list *fillList(char index, list *next) { return index == 0 ? next : fillList(index - 1, new list(N - index, random(), next)); } void sumLists(list *r, list *a, list *b) { if (a != NULL) { *r = *new list(a->n, a->a + b->a, new list()); sumLists(r->next, a->next, b->next); } }