1 |
Douglas Thrift |
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 |
Douglas Thrift |
3 |
NullNode<Type> front; |
18 |
|
|
NullNode<Type> back; |
19 |
Douglas Thrift |
1 |
public: |
20 |
Douglas Thrift |
3 |
DoublyLinkedList() { front.setNext(&back); back.setPrevious(&front); } |
21 |
|
|
~DoublyLinkedList(); |
22 |
Douglas Thrift |
1 |
void addFront(Type& type); |
23 |
|
|
void addBack(Type& type); |
24 |
|
|
}; |
25 |
|
|
|
26 |
Douglas Thrift |
3 |
template<typename Type> |
27 |
|
|
DoublyLinkedList<Type>::~DoublyLinkedList() |
28 |
|
|
{ |
29 |
|
|
while (front.getNext() != &back) front.removeNext(); |
30 |
|
|
} |
31 |
|
|
|
32 |
Douglas Thrift |
1 |
#endif // _DoublyLinkedList_hpp_ |