#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);
}
}