二叉树的层序遍历--结合递归算法

Posted henuajy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的层序遍历--结合递归算法相关的知识,希望对你有一定的参考价值。

层序遍历

规则是:若树为空,则空操作返回,否则从树的第一层,也就是根结点开始访问,从上而下逐层遍历,在同一层中,按从左到右的顺序对结点逐个访问。如图:
技术图片

代码实现


BiTree TreeQueue[1024];
int front = 0;
int rear = 0;
int LevelOrderTraverse(BiTree T) {
    if (!isTreeExits) {
        cout << "二叉树不存在";
        return -1;
    }
    if (!T&&isRoot==0) {
        cout << "二叉树为空,无元素";
    }

    if (T) {
        isRoot++;
        cout << T->data << " ";
        if (T->lchild) {
            TreeQueue[rear] = T->lchild;
            rear++;
        }
        if (T->rchild) {
            TreeQueue[rear] = T->rchild;
            rear++;
        }
        if (front != rear) {
            LevelOrderTraverse(TreeQueue[front++]);
        }
    }
}

以上是关于二叉树的层序遍历--结合递归算法的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的层序遍历(递归方式)

面试---算法面试

建立二叉树,层序、先序遍历

建立二叉树,层序、先序遍历

LeetCode JS实现 二叉树(前中后层序)遍历(递归迭代法)

LeetCode JS实现 二叉树(前中后层序)遍历(递归迭代法)