File indexing completed on 2025-12-16 10:31:57
0001 #ifndef Node_C
0002 #define Node_C
0003
0004 namespace ATOOLS {
0005
0006 template <class Node_Type>
0007 Node<Node_Type>::Node(const Node_Type &node,const bool create):
0008 std::vector<Node_Type>(1,node),
0009 p_next(NULL),
0010 p_previous(NULL)
0011 {
0012 if (create) p_next = new std::vector<Node<Node_Type>*>();
0013 }
0014
0015 template <class Node_Type>
0016 Node<Node_Type>::~Node()
0017 {
0018 if (p_next!=NULL) {
0019 for (typename std::vector<Node<Node_Type>*>::iterator nit=p_next->begin();
0020 nit!=p_next->end();++nit) {
0021 delete (*nit);
0022 }
0023 delete p_next;
0024 }
0025 }
0026
0027 template <class Node_Type>
0028 std::vector<Node<Node_Type>*> *Node<Node_Type>::operator->()
0029 {
0030 return p_next;
0031 }
0032
0033 template <class Node_Type>
0034 std::vector<Node<Node_Type>*> &Node<Node_Type>::operator()()
0035 {
0036 return *p_next;
0037 }
0038
0039 template <class Node_Type>
0040 void Node<Node_Type>::operator<<(Node<Node_Type> *const prev)
0041 {
0042 p_previous=prev;
0043 }
0044
0045 template <class Node_Type>
0046 Node<Node_Type>* Node<Node_Type>::operator--() const
0047 {
0048 return p_previous;
0049 }
0050
0051 }
0052
0053 #endif