Moe*_*oeb 4 c++ tree data-structures
我所做的是下面的,但这个我有一个很大的问题,同时破坏了树,而要打印的树(基本上,无论我需要使用递归的树).
这是因为在尝试print在右子树的左侧递归调用时,我的方法会中断,因为我的左右子树实际上只是Nodes而不是Trees.因此,我需要将我的节点命名为树或我需要创建新的树,这两个都是丑陋的解决方案.
我认为这里的问题是课堂设计.你能评论一下吗?谢谢!
class Node {
int _data;
public:
Node* left; // left child
Node* right; // right child
Node* p; // parent
Node(int data) {
_data = data;
left = NULL;
right = NULL;
p = NULL;
}
~Node() {
}
int d() {
return _data;
}
void print() {
std::cout << _data << std::endl;
}
};
class Tree {
Node* root;
public:
Tree() {
root = NULL;
}
Tree(Node* node) {
root = node;
}
~Tree() {
delete root->left; // this is NOT RIGHT as
// it only deletes the node
// and not the whole left subtree
delete root->right;
delete root;
}
void print(int);
void add(int);
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19302 次 |
| 最近记录: |