精华内容
下载资源
问答
  • 后根遍历序列
    千次阅读
    2020-08-01 09:43:12

    答:

    能确定,树的先根遍历和后根遍历对应二叉树的先序遍历和中序遍历。由二叉树的先序遍历和中序遍历可唯一确定一颗二叉树,二叉树可唯一变换为树

    更多相关内容
  • 经典的二叉树的先根、中根和后根遍历序列

    千次阅读 热门讨论 2022-04-06 17:16:37
    先根、中根和后序根遍历序列

    目录

    先根遍历:根左右

    中根遍历:左根右

    后根遍历:左右根

    下面做俩题就懂了


    先根遍历:根左右

    中根遍历:左根右

    后根遍历:左右根

    下面做俩题就懂了


    题一: 

    先根遍历:ABCDEFGH
    中根遍历:CBEDFAGH
    后根遍历:CEFDBHGA

    题二: 

    前根序列:-+A*BC/DE
    中根序列:A+B*C-D/E
    后根序列:ABC*+ DE/-

    题三:

    前根序列: ABDEGCFH
    中根序列: DBGEACHF
    后根序列: DGEBHFCA

    展开全文
  • // 由中根遍历的数组和后根遍历的数组建立一棵二叉树 // 其中参数inOrder是整棵树的中根遍历,postOrder是整棵树的后根遍历,inIndex是 // 中根遍历从inOrder字符串中的开始位置,postIndex是后根遍历从字符串...

    1.递归建立二叉树

      由中根遍历的数组和后根遍历的数组建立一棵二叉树,其中参数inOrder是整棵树的中根遍历,postOrder是整棵树的后根遍历,inIndex是 中根遍历从inOrder字符串中的inOrder的最后一个位置,postIndex是后根遍历从字符串postOrder 中的最后一个位置,count表示树结点的个数。

    public BiTree( String postOrder, String inOrder, int postIndex,int inIndex,int count) {
    
     if (count > 0) {// 中根和后根非空
    
    char r = postOrder.charAt(postIndex);// 取后根字符串中的最后一个元素作为根结点
    int i =0 ;
    for (; i<count; i++) {
     
     // 寻找根结点在中根遍历字符串中的索引
     if (r == inOrder.charAt( inIndex-i)) {
      break;
     }
     }
    root = new BiTreeNode(r);// 建立树的根结点
    root.rchild= new BiTree( postOrder,inOrder,postIndex-1,inIndex, i).root;// 建立树的右子树
    root.lchild= new BiTree( postOrder, inOrder,postIndex-i-1,inIndex -i-1,count-i-1).root;// 建立树的左子树
    
    
    }
    }
    

    2.实现类

    public class test {
    
     public static void main(String[] args) {
    
    String postOrder = "DGEBHFCA";
    
    String inOrder = "DBGEAFHC";
    
    BiTree T = new BiTree(postOrder,inOrder,postOrder.length()-1,postOrder.length()-1,postOrder.length());
    
    System.out.println("先根遍历为:");
    
    BiTreeNode root = T.getRoot();      //取得树的根结点
    
    T.preRootTraverse(root);
    
    System.out.println();
    
     System.out.println("后根遍历");
    
    T.postRootTraverse(root);
    
    System.out.println();
    
    System.out.println("中根遍历");
    
    T.inRootTraverse(root);
    
     }
    }
    

    3.运行结果:

    先根遍历为:
    ABDEGCFH
    后根遍历
    DGEBHFCA
    中根遍历
    DBGEAFHC

    展开全文
  • 数据结构中最爱考的题型已知后根、中求先或已知先、中后根

    题一:

    已知一棵树二叉树的 后根遍历 和 中根遍历 的序列分别为: ACDBGIHFE 和 ABCDEFGHI,

    请画出该二叉树,并写出它的先根遍历的序列

    答:

    先根遍历序列:EBADCFHGI

    解题思路:

    我们先找到根

      后根:左  右  根                                         中跟:左  根   

     ACDB    GIHF   E                                           ABCD   E    FGHI

    我们先从后根去找,这个根一定是在这个遍历的后面,我们就可以确定E是根

    然后我们在中根遍历中找到E的位置,所以E的左边就是左指数节点,右边是右指数节点

    现在最上面的数E确定了,那谁是E左指数上的根呢,谁在后面谁是根:是B

    然后再看中根遍历,谁在B的左边谁是左指数:是A;于是:

    现在在左指数上只有C和D没有画出来,

    看中根遍历得到:C和D在B的右边,看后根遍历知道D在后面,所以D是根,

    在中根遍历中,C在D的左边,所以C是D的左指数;

    于是:以E为根节点的左指数画完

    接下来看看以E为根节点的右指数,先在后根遍历中找根节点,谁在后面谁是根节点:是F

    再到中根遍历中找到F位置,F左边画完了,所以没有左指数,再看右边:GHI

    回到后根遍历看GHI,得知H是根节点,所以:

    现在只剩G、I 没有画了,所以回到中根遍历中看到G在H左,I 在H右,所以:

    如果想知道画的对不对,带进题干,看看他的后根遍历和中根遍历对不对就行了

    题二:

    已知一棵树二叉树的先根遍历和中根遍历的序列分别为:ABDGHCEFI和GDHBAECIF,

    请画出此二叉树,并写出它的后根遍的序列

    构造的二叉树如下

    后根遍历序列: GHDBEIFCA

    解题思路:
    首先先找根

    先根: 根      右                              中根: 左  根   

            A    BDGH    CEFI                          GDHB   A   ECIF

    看先根遍历得知A是根,然后在中根遍历中找到A的位置

    所以得知GDHB在A的左边,ECIF在A的右边

    那GDHB是谁根呢?回到先根遍历中,谁在前面谁是根,得知是B

    再看中根,GDH在B的左边,那就是B的左指数

    那GDH种谁是根呢?看先根中,D在前,那D就是根

    再去中根遍历中找D的位置,得知左是G,右是H

    现在以A为根节点的左指数已全部找到,那右指数就是ECIF

    回到先根遍历中,那这四个谁在前面谁是根,是C

    再去中根遍历中找C的位置,E在C的左边(左指数),I F在C的右边(右指数)

    那 I F谁是根呢?去先根遍历中找:F在前,F是根

    中根遍历中 I 在 F 左,于是 I 是F的左指数 

    展开全文
  • 那可以推断出,要满足题意的话“二叉树的先序序列与后序序列正好相反”,说明整个二叉树左子树或者右子树有一个没有(遍历就成了,先:M-L ;:L-M 或者 先:M-R ;:R-M )也就是必然是一条链。 所以只有A对了...
  • 某二叉树的先根遍历序列后根遍历序列正好相反,则该二叉树具有的特征是() 正确答案: A 高度等于其结点数 任一结点无左孩子 任一结点无右孩子 空或只有一个结点 添加笔记 ...
  • 构造二叉树根据前序与中序遍历序列构造二叉树根据先序遍历构造二叉搜索树根据中序与后序遍历序列构造二叉树根据前序与后序遍历序列构造二叉树 二叉树的遍历顺序及方法可参考之前写过的二叉树的遍历(JAVA递归和非...
  • 已知某二叉树的中根遍历序列是ABCDEFG,后根遍历序列是BDCAFGE,则它的先跟遍历序列是:EACBDGF 首先明确先跟遍历:中左右;中根遍历:左中右;根遍历:左右中 1.根遍历明确根节点是E,中根遍历确定左子树是ABCD...
  • 已知一个二叉树的中序遍历序列和后序遍历序列,求这棵树的前序遍历序列。 【输入形式】 一个树的中序遍历序列 该树后序遍历序列,中间用空格分开。输入序列中仅含有小写字母,且没有重复的字母 【输出形式】 一个树...
  • //访问根节点 } } //建立二叉树 //由先根遍历序列和中根遍历序列建立一棵二叉树 public BiTree(String preOrder,String inOrder,int preIndex,int inIndex,int count) { if(count>0) { char r=preOrder....
  • 先访问节点访问左右子树的遍历方式是前序遍历,先访问左右子树最后访问节点的遍历方式是后序遍历,先访问左子树再访问节点最后访问右子树的遍历方式是中序遍历,下面详细说明: 前序遍历 遍历顺序是节点-...
  • 二叉树的先根,中根,后根遍历

    千次阅读 2021-11-16 17:10:01
    } 后根遍历:先遍历左子树,然后再遍历右子树,最后再遍历根; 即输出:1->3->2->7->6->4->9->11->10->13->15->14->12->8 public void afterRoot() { if (left != null) left.afterRoot(); if (right != null) right....
  • 以中根和后根遍历序列构造二叉树,替换所有与pattern匹配的子树为bitree。 public class BinaryTree { public BinaryNoderoot; public BinaryTree() { this.root = null; } public boolean isEmpty() //判断是否...
  • 思路: 先序序列的第一个结点为要构造二叉树的结点,在中序序列中查找二叉树的结点,则中序列根结点左边为结点的左子树的中序序列,...然后在构造了结点,就可以递归调用函数来勾结结点的左子树和...
  • 先根,中根,后根遍历

    千次阅读 2018-06-08 16:17:00
    先序遍历(先根)是先访问当前节点,然后再...一棵二叉树的先根遍历为ABCDEFG,中根遍历为CBDEAGF,则其后根遍历为多少? 方法:(层层解剖,集合从大到小,递归分析) (无论如何必须先分析先根,确定父节点,再...
  • 从中序与后序遍历序列构造二叉树 1 题目地址 https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/ 2 题目描述 根据一棵树的中序遍历与后序遍历构造二叉树。 注意: 你...
  • 由标明空子树的先序遍历序列创建二叉树 i=0 def createBiTree2(preOrder): # i为常数0 global i c = preOrder[i] # 取字符 if c != '#': root = BiTreeNode(c) i += 1 root.lchild = createBiTree2...
  • 二叉树先根、中根、后根遍历

    万次阅读 多人点赞 2017-10-14 17:39:19
    二叉树先根、中根、后根遍历根遍历: ABCDEFGH 中根遍历:CBEDFAGH 后根遍历 : CEFDBHGA
  • 下面小编就为大家带来一篇通过先序遍历和中序遍历后序列还原二叉树(实现方法)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 转载地址:http://blog.csdn.net/peiyao456/article/details/52667057已知先序遍历序列和中序遍历序列,求出后序序列 或者 已知中序序列和后序序列 ,求出先序遍历。。都是一些考试中容易考的题目。经过研究发现,...
  • 还原二叉树遍历序列

    千次阅读 2018-08-14 22:07:14
    已知一颗二叉树后序序列为 debfca, 中序序列为dbeafc, 则先序遍历为:abdecf  a  / \  b c  / \ / d e f   -----------------------------------------------------------------...
  • 输入一棵二叉树的先序和中序遍历序列,输出其遍历序列。 输入 输入文件为tree.in,共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写字母表示。 输出 输出...
  • 已知二叉树的先序遍历序列和中序遍历序列,建二叉树过程(递归) 中心思想: 利用先序序列知道每个部分结点、左子树和右子树,再利用中序序列进行递归 如:先序序列abxxcxx 中序序列bxxacxx 结点a 左子树bxx 右...
  • 根遍历和先根遍历/后根遍历构建二叉树

    万次阅读 多人点赞 2017-04-12 22:34:34
    给定二叉树的2个遍历序列(如先+中,先+后根,中+后根等),是否能够根据这2个遍历序列唯一确定二叉树? 2结论 这三种组合并不是都能唯一确定二叉树的,其中先+后根就不能唯一确定一棵二叉树,中+先...
  • 以前序为例子:前序遍历序列:ABCDEF中序遍历序列:CBDAEF前序遍历先访问节点,因此前序遍历序列的第一个字母肯定就是节点,即A是节点;然后,由于中序遍历先访问左子树,再访问节点,最后访问右子树,所以...
  • 二叉树的遍历主要有三种: (1)先序遍历(左右) (2)中序遍历(左右) (3)后序遍历(左右) 举个例子: 先序遍历(左右):A B D H ...例子1:已知二叉树的后序遍历序列是dabec,中序遍历序列是debac,它的
  • 某二叉树的前序遍历序列和后序遍历序列正好相反,则该二叉树具有的特征是 A 高度等于其结点数 B 任一结点无左孩子 C 任一结点无右孩子 D 空或只有一个结点个人参考答案: A 选项可能未全匹配,凭回忆码的知识点...
  • #include #define MAXSIZE 100 using namespace std;... cout树的后根遍历输出为:\n"; InOrderTraverse2(s); CountLeaf(s); a=Depth(s); cout树的深度为:"; cout树的叶子结点个数为:"; }
  • 二叉树的先序遍历——左子树——右子树 二叉树的中序遍历:左子树————右子树 二叉树的后序遍历:左子树——右子树—— 二叉树的层次遍历:从第一层开始,从上至下逐层遍历,在同一层中,则按照从左到右...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 106,052
精华内容 42,420
关键字:

后根遍历序列