| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 845 人关注过本帖
标题:关于 树的问题
只看楼主 加入收藏
LegendofMine
该用户已被删除
收藏
已结贴  问题点数:20 回复次数:8 
关于 树的问题
提示: 作者被禁止或删除 内容自动屏蔽
搜索更多相关主题的帖子: include 
2010-06-05 09:03
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
收藏
得分:20 
你在delete中确实把结点给删掉了,可是别忘了结点a(根)还在指着他呢,你应该把结点a的右子树置为NULL。 不应该 观前不顾后

编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-06-05 09:34
LegendofMine
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-05 09:58
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
收藏
得分:0 
非要让我亲自动手,好吧
换成我这个就可以了
void Delete(BiTree &T,ElemType x)
{
    if(T)
    {
        Delete(T->lchild,x);
        Delete(T->rchild,x);
        if(T->data==x)
        {
            FREE(T);
            T=NULL;
        }
    }
}

编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-06-05 10:16
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
收藏
得分:0 
或者你不用C++,也就不能用引用。此时你可以用二级指针来代替
别忘了在main函数中,加上 &
程序代码:
void Delete(BiTree *T,ElemType x)
{
    if(*T)
    {
        Delete(&(*T)->lchild,x);
        Delete(&(*T)->rchild,x);
        if((*T)->data==x)
        {
            FREE(*T);
            *T=NULL;
        }
    }
}



编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-06-05 10:28
LegendofMine
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-05 16:29
hzh512
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
收藏
得分:0 
你自己换上试一试不就知道了吗。难道你编程从不调试,你完全可以设个断点,自己看看 a的右子树是否为NULL,你的程序肯定不是NULL。

你认为设成NULL,其实你没改,你改的是T这个局部变量。而且,我记得以前说过函数调用会产生临时对象(这里的函数参数就是)。
另外,还告诫过你,不要直接传对象,要传引用(当然也可以是指针)。
值传递和地址传递,你应该明白吧!在这里使用二级指针,是因为你要修改的是一个地址,所以要用指向地址的指针。




编程=用几种语言在某个或几个平台上通过抽象思维运用一系列算法来解决现实中问题的手段
2010-06-05 18:08
LegendofMine
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-06-05 22:32
傻傻丫头
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-6-8
收藏
得分:0 
去年才学的忘的差不多了
2010-06-08 23:24
快速回复:关于 树的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030928 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved