ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/ccscs20/NullNode.hpp
(Generate patch)

Comparing NullNode.hpp (file contents):
Revision 3 by Douglas Thrift, 2004-05-13T00:24:51-07:00 vs.
Revision 4 by Douglas Thrift, 2004-05-13T17:50:29-07:00

# Line 9 | Line 9
9  
10   #include "Node.hpp"
11  
12 < template <typename Type>
12 > template<typename Type>
13   class NullNode : public Node<Type>
14   {
15   private:
16          bool null;
17        NullNode<Type>* next;
18        NullNode<Type>* previous;
17   public:
18          NullNode() : null(true) {}
19 <        NullNode(const Type& value) : Node<Type>::Node(value), null(true) {}
19 >        NullNode(const Type& value) : Node<Type>::Node(value), null(false) {}
20          ~NullNode() {}
21 <        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; }
21 >        bool contains(const Type& value, NullNode<Type>* end);
22   };
23  
24   template<typename Type>
25 < 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)
25 > bool NullNode<Type>::contains(const Type& value, NullNode<Type>* end)
26   {
27 <        NullNode<Type>* ahead = previous->previous;
28 <
48 <        delete previous;
27 >        NullNode<Type>* another = Node<Type>::getNext() != NULL ?
28 >                Node<Type>::getNext() : Node<Type>::getPrevious();
29  
30 <        previous = ahead;
30 >        if (null && end == this)
31 >        {
32 >                return false;
33 >        }
34 >        else if (!null && value == Node<Type>::getValue())
35 >        {
36 >                return true;
37 >        }
38 >        else return another->contains(value, end);
39   }
40  
41   #endif // _NullNode_hpp_

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines