zoukankan      html  css  js  c++  java
  • 给出二叉树的先序和中序遍历,给出后序遍历

    实现一个功能:
    输入:一颗二叉树的先序和中序遍历
    输出:后续遍历

    思想: 先序遍历中,第一个元素是树根
    在中序遍历中找到树根,左边的是左子树 右边的是右子树
     1 def fromFMtoL(  mid ):
     2     global las  #全局后序遍历
     3     global fir  #先序遍历
     4 
     5     root = fir[0]   #取出当前树根
     6 
     7     fir = fir[1:]   #取出树根后 先序遍历把根拿出来 下面一个元素做树根
     8     root_po = mid.find( root )  #在中序遍历当中树根的位置
     9     left = mid[0:root_po]   #左子树
    10     right = mid[root_po+1:len(mid)] #右子树
    11 
    12     '''
    13     后序遍历: 左 右 根 
    14     先左子树 再右子树 最后跟
    15     '''
    16 
    17     #有左子树的时候
    18     if len(left) > 0:
    19         fromFMtoL( left )
    20     #有右子树的时候
    21     if len(right) > 0:
    22         fromFMtoL( right )
    23 
    24     #树根写进结果
    25     las += root
    26 
    27 
    28 
    29 if __name__ == "__main__" :
    30     # fir = input("请输入先序遍历:")     #前序遍历的结果
    31     # mid = input("请输入中序遍历:")     #中序遍历的结果
    32     fir = "DBACEGF"
    33     mid = "ABCDEFG"
    34     # fir = "ABC"
    35     # mid = "BAC"
    36     las = ""
    37     fromFMtoL(  mid )
    38 
    39     print(las)

     

  • 相关阅读:
    四则运算出题器3
    《梦断代码》读书笔记
    结队开发的小程序
    四则运算程序测试
    (补)PSP三张表
    多功能四则运算出题器
    四则运算分析题
    C语言编写的随机产生四则运算测试题
    读书笔记
    四则运算(三)
  • 原文地址:https://www.cnblogs.com/Lin-Yi/p/7355422.html
Copyright © 2011-2022 走看看