求“二叉树”随机生成的算法!!!

__lhl__ 2004-09-29 09:52:02
为了测试程序方便起见,我想设计一个函数,它能按照要求“层数”随机生成一棵二叉树,初步拟定用队列实现之(逐层生成),但又想不到好的办法来控制生成的树一定有指定的层数(我用随机数控制当前树”是否有左右子树“)!

严重求救!!!
...全文
321 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
短歌如风 2004-09-29
  • 打赏
  • 举报
回复
void build_random_tree(tree_node* root, int level)
{
if (level > 0)
{
if(rand() % 2 != 0)
{
tree_node->left = build_rand_node();
build_random_tree(tree_node->left, level - 1);
}
if(rand() % 2 != 0)
{
tree_node->right = build_rand_node();
build_random_tree(tree_node->right, level - 1);
}
}
}
stonepeter 2004-09-29
  • 打赏
  • 举报
回复
这样吧,每个节点记下一个层数
struct node
{
DataType data;
node *lchild, *rchild;
int layer;
},*Tree;

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧