首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

由前序序列与中序序列实现后序遍历

前序遍历:就是先遍历根节点,然后再访问左子树与右子树。遍历子树的时候同样也是先遍历根节点然后在遍历他的左子树与右子树。 中序遍历:先遍历左子树,在遍历根节点,最后遍历右子树。...后序遍历:先遍历左子树与右子树,在遍历根节点。 因为有这样的特点所以可以通过中序序列与后序或前列序列来确定一个二叉树。...一个二叉树的前序序列为abdecf 后序序列为dbeacf 由前序序列的特点我们知道前序序列第一个节点一定是该树的根节点,这样在中序序列中寻找与根节点相同的点,以根节点在中序序列的位置为界限,记为l1...,左边就是左子树的中序遍历,右边就是右子树中序遍历,此时根节点在中序序列中的位置,就是前序序列遍历完左子树加上根节点的最后一个位置,记为l2,此时,在先序序列中除去第一个节点(因为第一个节点是根节点,...这时可以看出a是树的根节点,在bde与dbe分别是左子树的前序序列和中序序列,cf就是右子树的先序序列和中序序列,这样再以新生成的前序序列与中序序列再次进行找根节点并且分割左右子树的操作,这样直到两颗子树都只有一个节点时

18110
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python深度遍历、广度遍历、递归函数遍历目录【详细讲解】

    Python通过os模块可以实现对文件或者目录的遍历,这里想实现这样的效果有三种方法,分别是递归函数遍历目录,栈深度遍历和队列广度遍历。下面就通过这三种方法来演练一下。...通过以下目录结构来演示 图片1.png 1.递归函数遍历目录 import os path = r'C:\Users\Administrator\Desktop\python知识总结\1.python自学网...import os path = r'C:\Users\Administrator\Desktop\python知识总结\1.python自学网-基础教程-视频源码\aaa' # 栈结构遍历又可以看做深度遍历...\Administrator\Desktop\python知识总结\1.python自学网-基础教程-视频源码\aaa\f\c 目录 C:\Users\Administrator\Desktop\python...知识总结\1.python自学网-基础教程-视频源码\aaa\f\t 目录 C:\Users\Administrator\Desktop\python知识总结\1.python自学网-基础教程-视频源码

    3.7K20

    二叉树的后序遍历序列

    前言 有一个整数数组,如何判断该数组是不是某个二叉树的后序遍历结果?本文就跟大家分享下这个算法,欢迎各位感兴趣的开发者阅读本文。 思路分析 我们通过一个例子来分析这个问题,如下所示为一颗二叉树。...image-20221023214717313 通过之前文章的学习(二叉树的后序遍历),我们可以很快看出这颗树的后序遍历序列为: [5, 7, 6, 9, 11, 10, 8],通过观察后我们发现最后一个数字为二叉树的根节点...,数组中前面的数字可以分为两部分: 第一部分是左子树节点的值,它们都比根节点的值小 第二部分是右子树节点的值,它们都比根节点的值大 在上面的后序遍历结果数组中,前3个数字5、7、6都比根节点8小,是它的左子树节点...rightIndex从分界点开始找(默认从leftIndex位置开始),如果有比根节点小的值,那么这个序列一定不属于二叉树的后序遍历序列 如果leftIndex指针离开了起始位置(0),证明它的左子节点还没找完...) 如果leftIndex指针没有到达数组末尾,证明它的右子节点还没找完,需要重复执行上述过程继续查找(从leftIndex+1位置开始递归) 返回左、右子树的递归校验结果(两者都为true则表示这个序列为二叉树的后序遍历序列

    30310

    LeetCode——遍历序列构造二叉树

    105从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点...preorder[i], inorder[i] <= 3000 preorder 和 inorder 均无重复元素 inorder 均出现在 preorder preorder 保证为二叉树的前序遍历序列...inorder 保证为二叉树的中序遍历序列 原题目链接:https://leetcode.cn/problems/construct-binary-tree-from-preorder-and-inorder-traversal.../ 思路: 这里给的两个数组,第一个数组是前序遍历的内容,第二个是中序遍历的内容,前序遍历是根,左,右,由此可以确定根节点,但是不能确定左子树和右子树是怎么分布的,但是中序遍历可以根据确定的第一个根来判断左子树和右子树的区间...inorder.size() - 1;//第二个数组的区间,尾 return section(preorder,inorder,pos,begin,end); } }; 106从中序与后序遍历序列构造二叉树

    22720

    二叉搜索树的后序遍历序列

    题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。...例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:          8        /  \       6    10     / \    / \    5   7...如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。 分析:这是一道trilogy的笔试题,主要考查对二元查找树的理解。...在后续遍历得到的序列中,最后一个元素为树的根结点。...根据这样的划分,把序列划分为左右两部分,我们递归地确认序列的左、右 两部分是不是都是二元查找树。 在后序遍历得到的序列中,最后一个数字是树的根结点的值。

    65770
    领券