| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3004 人关注过本帖
标题:2叉树的问题
只看楼主 加入收藏
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

对不起,昨天晚上太累,做得没心机,刚才起来又看了一下,原来while循环并没有问题,就是最后一个"#"时发生top=-1的情况,导致s数组溢出,如下改动:

else { if(top!=0) //加个判断就可以了,昨天晚上不好意思 top--; while(s[top]->right!=NULL) { top--; }

2004-11-13 09:37
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

我再用第二个例子调试一次,发现top还出现溢出的情况,再跟踪调试,溢出发生在while里面,这次再加一个判断,如下:

while(s[top]->right!=NULL&&top!=0) { top--; }

这样,在两个判断的作用下,就再也不会溢出了。

再次为昨天晚上的不耐烦道歉,希望你能看到此帖和不要对论坛不信任。

2004-11-13 09:44
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

修改后的case '#'的完整如下:

case '#': if(k==1){k=2;} else { if(top!=0) //判断一次 top--; while(s[top]->right!=NULL&&top!=0) //再判断一次 { top--; }

} break;

2004-11-13 09:46
lcf
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2004-10-10
收藏
得分:0 

live41斑竹,

真的 很感谢你的帮助,有你这么好的斑竹,真是这个论坛的幸福!

while(s[top]->right!=NULL&&top!=0)这个语句我也想到过,但还是错了,没想到在他前面还要一句

if(top!=0) //判断一次 top--;

我对我的错误了解的很清楚了,真的很感谢!! 还有个小问题:你说的

“我再用第二个例子调试一次,发现top还出现溢出的情况,再跟踪调试,溢出发生在while里面”

你是怎么 调试的,怎么发现top有溢出的,怎么发现是在 while循环里的??

2004-11-13 13:46
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

你用VC6吧?你运行时应该是按那个感叹号的按钮吧?你看到感叹号按钮右边有两个按钮吗?

例如:你写好了一个文件,按Build(F7)按钮后感叹号按钮会激活,同时它右边两个按钮也激活,最右边的是设置断点位置(Insert/Remove BreakPoint (F9)),另外一个就是跟踪调试按钮(Go (F5))。具体怎么用,你自己先试一下,不懂再问我。

[此贴子已经被作者于2004-11-13 14:19:50编辑过]

2004-11-13 14:17
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
另外要说的是,不要斑竹前斑竹后的,我感到好像要挟我似的,不答你问题就会被静哥骂……
2004-11-13 14:21
lcf
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2004-10-10
收藏
得分:0 

谢谢 ,懂了 。跟踪调试按钮(Go (F5)),这么好的好东西怎么不早告诉我!

设置断点位置(Insert/Remove BreakPoint (F9)),自己用用 应该就懂了。

“静哥” 难道 比你还厉害,干吗要被他骂?

2004-11-13 14:32
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
哈哈,说笑,静哥就是管理员的ID,因为不知道其真名,惟有这么叫,他不是坏人……我想。
2004-11-13 14:44
kai
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:52
帖 子:3450
专家分:59
注 册:2004-4-25
收藏
得分:0 

I have not understand what do you want realize.

Can you explain it? 先序、中序、后序 what is the principle ?

I have noticed that you have used new to create memory place, but where is delete???


自由,民主,平等,博爱,进步.
中华民国,我的祖国,中华民国万岁!中华民国加油!
本人自愿加入中国国民党,为人的自由性,独立性和平等性而奋斗!
2004-11-21 10:55
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 

kai,我倒,干嘛用英文?你台机没中文吗?他的代码漏了析构函数没写。

遍历的方法三种,全部递归。。。看不懂你问什么。

2004-11-21 11:13
快速回复:2叉树的问题
数据加载中...
 
   



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

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