* Doubly Linked List를 구현한 클래서 DList를 정의하여라.

* Doubly Linked List는 Linked List와 매우 유사하나, 각 노드가 리스트의 다음노드 (next) 뿐만 아니라 이전노드 (prev)도 알고 있는 자료구조를 말한다. 아래 그림은 Doubly Linked List의 예를 보여준다.

* DList는 LList처럼 첫번째 노드를 가리키는 head뿐만 아니라 마지막 노드를 가리키는 tail도 갖고 있다.

* 첫번째 노드의 prev 와 마지막 노드의 next 값은 NULL로 정한다.

* DList가 비어있을 때에는 head와 tail 모두 NULL값을 갖고 있다.

* Class DList는 다음과 같은 함수를 지원해야 한다.

제출할 파일:

#include <iostream>

template <class T>
class DList {
  Node<T> *head;
  Node<T> *tail;
public:
  // 작성
};

int main() {
  // 자신의 테스트 코드를 넣는다.
}