标题:[求助]给我解释一下这个循环是怎样进行的?
只看楼主
sishui198
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2007-4-12
 问题点数:0 回复次数:5 
[求助]给我解释一下这个循环是怎样进行的?
Void creat_btree(iint *b_tree,int *nodelist,int len)
{inti,leave;;
B_tree[1]=nodelist[1];
For(i=2;i<len;i++)
{level=1;
While(b_tree[level]!=0)
{if (nodlist[i]< b_tree[level])
Level = 2*level;
Else
Level = 2*level+1;
}
b_tree[level] =nodlist[i];
}
}
给我解释一下这个循环是怎样进行的?
搜索更多相关主题的帖子: tree int 解释 Void 
2007-10-21 10:39
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 

应该是二叉排序树.
就是把数组里的数据重新按照完全二叉排序树排列.


倚天照海花无数,流水高山心自知。
2007-10-21 13:04
sishui198
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2007-4-12
得分:0 
我知道这个,但是在循环中,我看不出来?麻烦说明?

2007-10-21 13:44
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
if (nodlist[i]< b_tree[level])
Level = 2*level;
Else
Level = 2*level+1;

你看一下完全二叉树的线性存储吧.

倚天照海花无数,流水高山心自知。
2007-10-21 14:12
jxnuwy04
Rank: 2
等 级:新手上路
威 望:4
帖 子:768
专家分:0
注 册:2006-9-15
得分:0 
自己做个单步测试不就清楚了

------------------不为别的,就为你,我的理想!-----------------
2007-10-21 22:22
zxc1998
Rank: 1
等 级:新手上路
威 望:1
帖 子:133
专家分:0
注 册:2007-3-21
得分:0 
参考一下严蔚敏书中二叉树的性质五
2007-10-23 21:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-179470-1-1.html




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

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