DamnCute/include/damncute/Core/TreeNode.hh
2016-05-29 18:10:44 +02:00

39 lines
755 B
C++

#include <type_traits>
#ifndef NODE_H_
# define NODE_H_
template <typename DATANODE>
struct TreeNode {
DATANODE* data; // TODO must exist only for final recurtion
TreeNode<DATANODE>* up;
TreeNode<DATANODE>* down;
TreeNode<DATANODE>* right;
TreeNode<DATANODE>* left;
explicit TreeNode(unsigned short level) {
if (level) {
up = new TreeNode<DATANODE>(level - 1);
down = new TreeNode<DATANODE>(level - 1);
left = new TreeNode<DATANODE>(level - 1);
right = new TreeNode<DATANODE>(level - 1);
} else {
up = NULL;
down = NULL;
left = NULL;
right = NULL;
}
data = NULL;
}
virtual ~TreeNode() {
delete up;
delete down;
delete left;
delete right;
}
};
#endif /* !NODE_H_ */