编写一个判断二叉树是否为完全二叉树的C语言函数

langhaixin 2002-05-05 11:29:30
二叉树存储结构
struct bt
{
char data; //结点值
struct bt *ltree;
struct bt *rtree;
}
...全文
1083 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Koorama 2002-05-05
  • 打赏
  • 举报
回复
书上有
born_in70s 2002-05-05
  • 打赏
  • 举报
回复 1
xixi,谢谢。从递归的写法来说,是罗嗦了些,不过递归调用的次数少。

以下这种写法更简洁:
int check (struct bt *root)
{
if (root == NULL)
return 0;

if (root->ltree == NULL && root->rtree == NULL)
return 1;

return check (root->ltree) & check (root->rtree);
}

但递归调用的次数就多一些。
挺拔的劲松 2002-05-05
  • 打赏
  • 举报
回复
楼上的可以!!!
born_in70s 2002-05-05
  • 打赏
  • 举报
回复
数构好久没翻了。如果我对完全二叉树定义理解没错,下面的实现可以吧?

int check (struct bt *root)
{
if (root == NULL)
return 0;

if (root->ltree == NULL && root->rtree == NULL)
return 1;

if (root->ltree == NULL && root->rtree != NULL
|| root->ltree != NULL && root->rtree == NULL)
return 0;

return check (root->ltree) & check (root->rtree);
}

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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