二叉树函数小疑惑~~新手求问
最近在写二叉树,很闹不明白这个函数,这个应该比较明白吧?就不解释了,问问为什么最后要把两个树的根节点为O呢?那样的话不是把那个指针指向的东西删除了?那新树怎么处理?不会找不到子树的地址?
void
BinaryTree::MakeTree(int element ,BinaryTree & left ,BinaryTree & right){
root = new BinaryTreeNode(element ,left.root ,right.root) ;
left.root = right.root = 0 ;
}
[解决办法]
我估计你看代码不完整。
这里只是初始化。
还没有创建节点。只是创建根节点。
所以不存在删除的问题。
[解决办法]
肿么会没人,我不是人吗>_<?
R=BinaryTreeNode(element ,A,B) .
这个函数应该是生成一个节点,然后把A置为该节点的左孩子,B置为该节点的右孩子.
然后A的root成员就不需要了,B的同理,因为可以根据R的左孩子,右孩子来找到A,B的地址.
[解决办法]
root = new BinaryTreeNode(element ,left.root ,right.root) ;
left.root = right.root = 0 ;
left.root和right.root怎么会是这个样子?root.left,root.right,不是这样的么??