#include <iostream> #include <string> template <typename T> class LinkedList { protected: struct Link { T data; Link * next; }; Link * first, * current; public: LinkedList<T>(void) { first=NULL; } void Add(T item) { Link * x = new Link; x->next = first; first = x; x->data=item; } void StartScan(void) { current=first; } bool MoreToCome(void) { return current!=NULL; } T GetNext(void) { T answer = current->data; current = current->next; return answer; } }; void main(void) { LinkedList<string> thelist; while (true) { string s; cin >> s; if (s=="end") break; thelist.Add(s); } cout << "You said:\n"; thelist.StartScan(); while (thelist.MoreToCome()) { string x = thelist.GetNext(); cout << x << "\n"; } cout << "The end\n"; }