| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1294 人关注过本帖
标题:[求助]随机生成n个结点二叉树的算法
取消只看楼主 加入收藏
sonfly
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-8-5
收藏
 问题点数:0 回复次数:1 
[求助]随机生成n个结点二叉树的算法

片段如下:
struct BiTNode
{
int data;
BiTNode *left;
BiTNode *right;
};

BiTNode *Tree; //根指针
cin<<i;
srand(i); //指定随机数种子,相同的种子将产生相同的数据序列
rand();

BiTNode *Generate(int n) //n为树的结点数
{
if (n==0)
return NULL;

BiTNode *P = new BiTNode;
P->data = rand() % 999 + 1 ;//为什么要加1 ?

int nl=rand() % (n);

P->left = Generate(nl);
P->right = Generate(n-1-nl);
return P;
}
搞不懂递归何时退出? 关键是Generate(n-1-nl)是什么意思……死活不懂,望高手灌顶!

搜索更多相关主题的帖子: 二叉树 结点 BiTNode 算法 rand 
2007-09-22 12:28
sonfly
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2007-8-5
收藏
得分:0 
谢谢大家 明白啦!
2007-09-23 10:18
快速回复:[求助]随机生成n个结点二叉树的算法
数据加载中...
 
   



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

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