美文网首页
给定一个序列,判断该序列是否为二叉查找树的后序遍历序列

给定一个序列,判断该序列是否为二叉查找树的后序遍历序列

作者: NoFacePeace | 来源:发表于2017-10-09 13:42 被阅读0次

    问题

    给出一个序列,判断该序列是否为二叉查找树的后序遍历序列。我们知道,二叉查找树中序遍历是有序的。也就是说,给定了后序遍历序列,其实就知道了中序遍历序列。因为,把后序遍历序列排序就得到了中序遍历序列。
    又因为,中序遍历序列和后序遍历序列可以唯一确定一颗二叉树,故:给定一个序列,从理论上就证明了:可以判断该序列是否是二叉查找树的后序遍历序列。

    分析

    对于二叉树的先序遍历序列,第一个元素是根节点,后面剩余的元素分为连续的两部分:前面的一部分是根的左子树中的节点元素,后面的另一部分是根的右子树中的结点元素。
    对于二叉树的后序遍历,最后一个元素是根结点,后面剩余的元素分为连续的两部分:前面的一部分是根的左子树中的结点元素,后面的另一部分是根的右子树中的结点元素。因为,后序遍历就是先访问根的左子树,再访问根的右子树,最后再访问根结点。
    因此,基于此,就可以判断一个给定的序列是不是二叉查找树的后序遍历序列了

    • 若右子树对应的序列中有比根小的元素,则它不是后序遍历序列;同理左子树
    • 若相对于树根结点而言,左右子树对应的后序遍历序列第一点,则进一步递归判断左子树和右子树对应的序列是否还满足,直到判断到叶结点为止。

    相关文章

      网友评论

          本文标题:给定一个序列,判断该序列是否为二叉查找树的后序遍历序列

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