Changeset 1172 for XIOS/dev/branch_yushan_merged/extern/remap/src/tree.hpp
- Timestamp:
- 06/15/17 19:32:13 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan_merged/extern/remap/src/tree.hpp
r923 r1172 14 14 class CBasicTree 15 15 { 16 public:16 public: 17 17 18 19 20 21 22 18 NodePtr root; /* The main tree is stored as Nodes which can be reached through traversal starting here */ 19 NodePtr ref; // FIXME this reference, set by a node is odd, try to remove 20 int ri; /** this is set to one by a node in case of reinsertion */ 21 vector<int> levelSize; /** e.g. levelSize[0] == leafs.size() */ 22 vector<Node> leafs; /** leafs are stored in vector for easy access and rest of the tree nodes as separate allocations, only reachable through tree traversal */ 23 23 24 25 26 27 28 24 CBasicTree() : ri(0), levelSize(MAX_LEVEL_SIZE), root(NULL), isAssignedLevel(false), okSplit(true), isActiveOkSplit(false) {} 25 ~CBasicTree(); 26 void build(vector<Node>& nodes); 27 void slim(int nbIts = 1); 28 virtual void insertNodes(vector<Node>& node) = 0; 29 29 30 31 30 void routeNodes(vector<int>& route, vector<Node>& nodes, int assignLevel); 31 void routeIntersections(vector<vector<int> >& route, vector<Node>& nodes); 32 32 33 34 35 36 37 38 33 void push_back(NodePtr node); 34 void push_front(NodePtr node); 35 void increaseLevelSize(int level); 36 void decreaseLevelSize(int level); 37 void newRoot(int level); 38 void insertNode(NodePtr node); 39 39 void output(ostream& flux, int level) ; 40 40 41 41 int keepNodes; 42 42 bool isAssignedLevel ; 43 43 int assignLevel; … … 50 50 51 51 52 private:53 52 private: 53 deque<NodePtr > pool; 54 54 55 55 bool okSplit ; 56 56 57 protected:57 protected: 58 58 void emptyPool(); 59 CBasicTree(int keepNodes_, int assignLevel_) : ri(0), levelSize(MAX_LEVEL_SIZE), root(NULL), keepNodes(keepNodes_), assignLevel(assignLevel_), isAssignedLevel(true), okSplit(true), isActiveOkSplit(false) {} 59 CBasicTree(int keepNodes_, int assignLevel_) : ri(0), levelSize(MAX_LEVEL_SIZE), root(NULL), keepNodes(keepNodes_), assignLevel(assignLevel_), isAssignedLevel(true), 60 okSplit(true), isActiveOkSplit(false) {} 60 61 }; 61 62 62 63 class CTree : public CBasicTree 63 64 { 64 public:65 65 public: 66 void insertNodes(vector<Node>& nodes); 66 67 }; 67 68 … … 69 70 { 70 71 71 public:72 72 public: 73 CSampleTree(int keepNodes_, int assignLevel_) : CBasicTree(keepNodes_,assignLevel_) {} 73 74 void slimAssignedLevel() ; 74 75 void removeExtraNode(void) ; 75 76 void insertNodes(vector<Node>& nodes); 76 77 }; 77 78
Note: See TracChangeset
for help on using the changeset viewer.