17 |
|
NullNode<Type>* next; |
18 |
|
NullNode<Type>* previous; |
19 |
|
public: |
20 |
< |
NullNode() : null(false) {} |
21 |
< |
NullNode(const Type& value) : Node<Type>::Node(value), null(false) {} |
20 |
> |
NullNode() : null(true) {} |
21 |
> |
NullNode(const Type& value) : Node<Type>::Node(value), null(true) {} |
22 |
|
~NullNode() {} |
23 |
+ |
void addNext(const Type& value); |
24 |
+ |
void addPrevious(const Type& value); |
25 |
+ |
void removeNext(void); |
26 |
+ |
void removePrevious(void); |
27 |
+ |
void setNext(NullNode<Type>* next) { this->next = next; } |
28 |
+ |
void setPrevious(NullNode<Type>* previous) { this->previous = previous; } |
29 |
+ |
NullNode<Type>* getNext(void) const { return next; } |
30 |
+ |
NullNode<Type>* getPrevious(void) const { return next; } |
31 |
|
}; |
32 |
|
|
33 |
+ |
template<typename Type> |
34 |
+ |
void NullNode<Type>::removeNext(void) |
35 |
+ |
{ |
36 |
+ |
NullNode<Type>* behind = next->next; |
37 |
+ |
|
38 |
+ |
delete next; |
39 |
+ |
|
40 |
+ |
next = behind; |
41 |
+ |
} |
42 |
+ |
|
43 |
+ |
template<typename Type> |
44 |
+ |
void NullNode<Type>::removePrevious(void) |
45 |
+ |
{ |
46 |
+ |
NullNode<Type>* ahead = previous->previous; |
47 |
+ |
|
48 |
+ |
delete previous; |
49 |
+ |
|
50 |
+ |
previous = ahead; |
51 |
+ |
} |
52 |
+ |
|
53 |
|
#endif // _NullNode_hpp_ |