00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 #ifndef __SEAL_NODE_H__ 00030 #define __SEAL_NODE_H__ 00031 00032 #ifndef NULL 00033 #define NULL 0 00034 #endif 00035 00036 namespace seal 00037 { 00038 00043 template <class T> 00044 class ListNode 00045 { 00046 public: 00050 ListNode(void); 00051 00054 ~ListNode(); 00055 00058 ListNode *nextPtr; 00059 00062 ListNode *prevPtr; 00063 00066 T data; 00067 00068 }; // class ListNode 00069 00070 template <class T> 00071 ListNode<T>::ListNode(void) 00072 { 00073 nextPtr = prevPtr = NULL; 00074 data = T(); 00075 } // ListNode::ListNode 00076 00077 template <class T> 00078 ListNode<T>::~ListNode() { ; } 00079 00080 // **************************************************************************** 00081 // **************************************************************************** 00082 // **************************************************************************** 00083 00086 template <class T> 00087 class BinTreeNode 00088 { 00089 public: 00092 BinTreeNode(void) { parent = NULL; lchild = NULL; rchild = NULL; } 00093 00096 ~BinTreeNode(void) {} 00097 00100 BinTreeNode<T> *parent; 00101 00104 BinTreeNode<T> *lchild; 00105 00108 BinTreeNode<T> *rchild; 00109 00112 T data; 00113 }; // class BinTreeNode 00114 00115 // **************************************************************************** 00116 // **************************************************************************** 00117 // **************************************************************************** 00118 00121 template <typename IndexType, typename DataType> 00122 class MapNode 00123 { 00124 public: 00127 MapNode(void) : nextPtr(NULL), prevPtr(NULL) {} 00128 00131 ~MapNode() {} 00132 00135 MapNode<IndexType, DataType> *nextPtr; 00136 00139 MapNode<IndexType, DataType> *prevPtr; 00140 00143 DataType data; 00144 00147 IndexType index; 00148 }; // class MapNode 00149 00150 // **************************************************************************** 00151 // **************************************************************************** 00152 // **************************************************************************** 00153 00156 template <typename PrtType, typename DataType> 00157 class PrtQueueNode 00158 { 00159 public: 00162 PrtQueueNode() : nextPtr(NULL), prevPtr(NULL) {} 00163 00166 ~PrtQueueNode() {} 00167 00170 PrtQueueNode<PrtType, DataType> *nextPtr; 00171 00174 PrtQueueNode<PrtType, DataType> *prevPtr; 00175 00178 DataType data; 00179 00182 PrtType prt; 00183 }; 00184 00185 } // End of namespace seal. 00186 00187 #endif // __SEAL_NODE_H__ 00188