#include template class Node { public: T value; Node* next; Node* prev; Node(){} Node(T tvalue) { value = tvalue; } Node(T tvalue, Node* tprev) { value = tvalue; prev = tprev; } Node(T tvalue, Node* tprev, Node* tnext) { value = tvalue; prev = tprev; next = tnext; } friend std::ostream &operator <<(std::ostream &os, Node &nd) { os << nd.value; return os; } };