1 |
// Doubly Linked List |
2 |
// |
3 |
// Douglas Thrift |
4 |
// |
5 |
// $Id$ |
6 |
|
7 |
#ifndef _DoublyLinkedList_hpp_ |
8 |
#define _DoublyLinkedList_hpp_ |
9 |
|
10 |
#include "NullNode.hpp" |
11 |
#include "Iterator.hpp" |
12 |
|
13 |
template<typename Type> |
14 |
class DoublyLinkedList |
15 |
{ |
16 |
private: |
17 |
NullNode<Type> front; |
18 |
NullNode<Type> back; |
19 |
public: |
20 |
DoublyLinkedList() { front.setNext(&back); back.setPrevious(&front); } |
21 |
~DoublyLinkedList(); |
22 |
void addFront(Type& type); |
23 |
void addBack(Type& type); |
24 |
}; |
25 |
|
26 |
template<typename Type> |
27 |
DoublyLinkedList<Type>::~DoublyLinkedList() |
28 |
{ |
29 |
while (front.getNext() != &back) front.removeNext(); |
30 |
} |
31 |
|
32 |
#endif // _DoublyLinkedList_hpp_ |