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如何判断一棵树是否是完全二叉树?的主要内容,如果未能解决你的问题,请参考以下文章

判断一棵树是否是完全二叉树

判断一棵树是否是完全二叉树

急急~判断一棵二叉树是满二叉树的算法!

判断一棵二叉树是否为完全二叉树

判断一棵二叉树是否为完全二叉树

NC60 判断一棵二叉树是否为搜索二叉树和完全二叉树