二叉树层序遍历

2017-07-31  本文已影响0人  日常表白结衣

【队列实现】
遍历从根节点开始,首先将根节点入队,然后开始执行循环:节点出队,访问该节点,使其左右儿子入队
基本过程:
从队列中抽取一个元素;访问该元素所指节点;若该元素所指节点的左右孩子节点非空,则将其左右孩子的指针顺序入队。

void LevelOrderTraversal(BinTree BT)
{
    Queue Q;
    BinTree T;
    if(!BT) return; //空树直接返回
    Q=CreatQueue(MAXSIZE); //创建并初始化队列
    Add(Q,BT);
    whiel(!TsEmptyQ(Q)){
        T=DeleteQ(Q);
        printf("%d\n",T->Data);
        if(T->Left) AddQ(Q,T->Left);
        if(T->Right) AddQ(Q,T->Right);
    }
}   
上一篇 下一篇

猜你喜欢

热点阅读