数据结构笔记——二叉树的层序遍历

目录

一、二叉树的层序遍历

二、代码实现

三、总结

一、二叉树的层序遍历

数据结构笔记——二叉树的层序遍历_第1张图片

算法思想:

①初始化一个辅助队列

②根结点入队

③若队列非空,则队头结点出队,访问该结点,将其左右孩子插入队尾(如果有的话)

④重复③直至队列为空

二、代码实现

//层序遍历
void LevelOrder(BiTree T){
    LinkQueue Q;
    InitQueue(Q);    //初始化辅助队列
    BiTree p;
    EnQueue(Q,T);        //将根结点入队
    while(!IsEmpty(Q)){    //队列不空则循环
        DeQueue(Q,p);        //队头结点出队
        visit(p);        //访问出队结点
        if(p->lchild != NULL)
            EnQueue(Q,p->lchild);    //左孩子入队
        if(p->rchild != NULL)
            EnQueue(Q,p->rchild);    //右孩子入队
    }
}

//二叉树的结点(链式存储)
typedef struct BiTNode{
    char data;
    struct BiTNode *lchild,rchild;
}

//链式队列结点
typedef struct LinkNode{
    BiTNode * data;    //存指针而不是结点
    struct LinkNode *next;
}

typedef struct{
    LinkNode *front,*rear;
}LinkQueue;

三、总结

数据结构笔记——二叉树的层序遍历_第2张图片

你可能感兴趣的:(考研数据结构)