数据结构题目43:二叉树的层次遍历(非递归)

题目:若二叉树为二叉链表存储结构,写出二叉树的层次遍历的非递归算法。

解题思路:算法中采用一个顺序存储结构队列QUEUE0..M-1,front与rear分别为队头指针和队尾指针。遍历之前先把二叉树根结点的存储地址进队,然后依次从队列中退出一个元素;每退出一个元素,先访问该元素所指的结点,然后依次把该结点的左孩子结点(若存在的话)与右孩子结点(若存在的话)的地址依次进队。如此重复下去,直到队列为空。此时,访问结点的次序就是按层次遍历该二叉树的次序。

具体算法如下:
这里使用到建立二叉树方法createBT(strBT)

function layerOrder(BT) {
    let queue=new Array(MaxSize), p, front, rear
    if ( BT!=null ) {
        queue[0] = BT
        front = -1
        rear = 0
        while ( front

你可能感兴趣的:(数据结构题目43:二叉树的层次遍历(非递归))