Q : | 编写一个判断二叉树是否为完全二叉树的C语言函数 | ||
主要解答者: | born_in70s | 提交人: | langhaixin |
感谢: | born_in70s | ||
审核者: | starfish | 社区对应贴子: | 查看 |
A : | |||
二叉树存储结构 struct bt { char data; //结点值 struct bt *ltree; struct bt *rtree; } --------------------------------------------------------------- 数构好久没翻了。如果我对完全二叉树定义理解没错,下面的实现可以吧? 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); } --------------------------------------------------------------- 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); } 但递归调用的次数就多一些。 |
编写一个判断二叉树是否为完全二叉树的C语言函数
最新推荐文章于 2023-08-01 22:21:11 发布