美文网首页数据结构
数据结构题目51:交换所有结点左、右子树的位置

数据结构题目51:交换所有结点左、右子树的位置

作者: 玲儿珑 | 来源:发表于2020-05-12 01:46 被阅读0次

题目:交换所有结点左、右子树的位置。
该操作采用按层次遍历方法比较合适。遍历过程中访问一个结点时,就将该结点的左、右子树的位置进行交换。

解题思路:算法中需要用到一个队列QUEUE[0,..,M-1],队头指针与队尾指针分别用front与rear表示。这里,不妨假设该队列采用顺序存储结构,并且空间足够大。

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

function exchangeBT(T) {
    let queue=new Array(MaxSize), temp, p=T, front, rear
    if ( T!=null ) {
        queue[0] = T
        front = -1
        rear = 0
        while ( front<rear ) {
            p = queue[++front]
            temp = p.lchild
            p.lchild = p.rchild
            p.rchild = temp
            if ( p.lchild!=null ) {
                queue[++rear] = p.lchild
            }
            if ( p.rchild!=null ) {
                queue[++rear] = p.rchild
            }
        }
    }
}


var str = "ABC  DE  F  G   "
var ch = ''
var len = str.length, i=0
var T = buildBT()
exchangeBT(T)

相关文章

  • 数据结构题目51:交换所有结点左、右子树的位置

    题目:交换所有结点左、右子树的位置。该操作采用按层次遍历方法比较合适。遍历过程中访问一个结点时,就将该结点的左、右...

  • 二叉树互换左右孩子

    /********** 【题目】编写递归算法,将二叉树中所有结点的 左、右子树相互交换。 二叉链表类型定义: ty...

  • 二叉树、平衡树、红黑树

    二叉查找树 左子树上所有结点的值均小于或等于它的根结点的值。右子树上所有结点的值均大于或等于它的根结点的值。左、右...

  • 京东

    树中任何结点的左子树中所有结点的值均比该结点小,右子树中所有结点的值均比该结点大。

  • 二叉查找(排序)树的剑指Offer算法

    特性: 如左子树不空,则左子树上所有结点均小于根结点的值 如右子树不空,则右子树上所有结点均大于根结点的值 左右子...

  • 二叉树排序

    若它的左子树不空,则左子树上所有结点的值均小于它的根结构的值 若它的右子树不空,则右子树上所有结点的值均大于它的根...

  • 问题:二叉树的遍历

    二叉树的遍历 前序遍历:根结点 ---> 左子树 ---> 右子树中序遍历:左子树---> 根结点 ---> 右子...

  • 数据结构-二叉查找树(Binary Search Tree)

    二叉查找树拥有如下特性: 若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值; 若右子树不空,则右子树...

  • 数据结构(查找-树表的查找)

    1. 二叉排序树 如果它的左子树不为空,那么左子树上的所有结点的值均小于它的根结点的值如果它的右子树不为空,那么右...

  • 二叉查找树(二叉排序树)

    左子树上所有结点的数据域均小于或等于根结点的数据域,右子树上所有结点的数据域均大于根结点的数据域 查找操作: 由于...

网友评论

    本文标题:数据结构题目51:交换所有结点左、右子树的位置

    本文链接:https://www.haomeiwen.com/subject/pjomnhtx.html