I am trying to implement a DEQUE using double linked list.

DEQUE.h

```
using namespace std;
template <typename T>
class Node{
Node(const T& data):data(data), next(0), prev(0) {}
public:
Node* next;
Node* prev;
T data;
};
template <typename T>
class DEQUE
{
//interface
};
```

DEQUE.cpp

```
template <class T>
void DEQUE< T > ::AddFirst(T t){
Node<T>* temp = new Node(t);
if ( counter != 0 ) {
temp->next = head;
temp->prev = 0 ;
head->prev = temp;
head =temp;
counter++;
}
else{
head = temp;
tail = temp;
temp->next = 0;
temp->prev = 0;
counter++;
}
};
```

I am getting expected type-specifier before 'Node' error on the line

```
Node<T>* temp = new Node(t);
```

what am I doing wrong here? Thanks for the help in advance.