14 |
|
class DoublyLinkedList |
15 |
|
{ |
16 |
|
private: |
17 |
< |
NullNode<Type>* front; |
18 |
< |
NullNode<Type>* back; |
17 |
> |
NullNode<Type> front; |
18 |
> |
NullNode<Type> back; |
19 |
|
public: |
20 |
< |
DoublyLinkedList() {} |
21 |
< |
~DoublyLinkedList() {} |
22 |
< |
void addFront(Type& type); |
23 |
< |
void addBack(Type& type); |
20 |
> |
DoublyLinkedList() { front.setNext(&back); back.setPrevious(&front); } |
21 |
> |
~DoublyLinkedList(); |
22 |
> |
void addFront(const Type& value) { front.addNext(value); } |
23 |
> |
void addBack(const Type& value) { back.addPrevious(value); } |
24 |
> |
bool contains(const Type& value) { return front.contains(value, &back); } |
25 |
|
}; |
26 |
|
|
27 |
+ |
template<typename Type> |
28 |
+ |
DoublyLinkedList<Type>::~DoublyLinkedList() |
29 |
+ |
{ |
30 |
+ |
while (front.getNext() != &back) front.removeNext(); |
31 |
+ |
} |
32 |
+ |
|
33 |
|
#endif // _DoublyLinkedList_hpp_ |