class List {
public:
... // same as before
void Add(void * v)
{ firstElement = new Link(v, firstElement); }
void * First()
{ return firstElement->value; }
... // same as before
};
class Link {
// constructors
Link (void * v) : next(0), value(v) {}
Link (void * v, Link * n) : next(n), value(v) {}
// data areas
Link * next;
void * value;
};