1如何判断一棵树是否是完全二叉树?
Posted fuqia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1如何判断一棵树是否是完全二叉树?相关的知识,希望对你有一定的参考价值。
思路:通过树的层序遍历进行判断。结点入队时,当出现一个结点的孩子结点为空时,则之后就不能有新的结点入队。
若没有,则是完全二叉树,否则不是完全二叉树。
层序遍历代码:
int after = 1;//表示还有结点入队 bool isComplete = true; void layerOrder(Node* root) { queue<Node*> Q; Q.push(root); while (!Q.empty()) { Node* front = Q.front(); Q.pop(); layer.push_back(front->v); if (front->lchild != NULL) { if (after == 0) isComplete = false; Q.push(front->lchild); } else { after = 0;//以后没有结点入队 } if (front->rchild != NULL) { if (after == 0) isComplete = false; Q.push(front->rchild); } else { after = 0; } } }
以上是关于1如何判断一棵树是否是完全二叉树?的主要内容,如果未能解决你的问题,请参考以下文章