激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python利用前序和中序遍歷結果重建二叉樹的方法

Python利用前序和中序遍歷結果重建二叉樹的方法

2020-08-21 10:21阿涵-_- Python

這篇文章主要介紹了Python利用前序和中序遍歷結果重建二叉樹的方法,實例分析了Python二叉樹的定義與遍歷操作技巧,需要的朋友可以參考下

本文實例講述了Python利用前序和中序遍歷結果重建二叉樹的方法。分享給大家供大家參考,具體如下:

題目:輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。

這道題比較容易,前序遍歷的結果中,第一個結點一定是根結點,然后在中序遍歷的結果中查找這個根結點,根結點左邊的就是左子樹,根結點右邊的就是右子樹,遞歸構造出左、右子樹即可。示意圖如圖所示:

Python利用前序和中序遍歷結果重建二叉樹的方法

利用前序和中序遍歷的結果重建二叉樹

Python代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# coding: utf-8
'''
題目:輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。
假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。
'''
class Node:
  def __init__(self, data, left, right):
    self.data = data
    self.left = left
    self.right = right
def construct_tree(pre_order, mid_order):
  # 忽略參數合法性判斷
  if len(pre_order) == 0 :
    return None
  # 前序遍歷的第一個結點一定是根結點
  root_data = pre_order[0]
  for i in range(0, len(mid_order)):
    if mid_order[i] == root_data:
      break
  # 遞歸構造左子樹和右子樹
  left = construct_tree(pre_order[1 : 1 + i], mid_order[:i])
  right = construct_tree(pre_order[1 + i:], mid_order[i+1:])
  return Node(root_data, left, right)
if __name__ == '__main__':
  pre_order = [1, 2, 4, 7, 3, 5, 6, 8]
  mid_order = [4, 7, 2, 1, 5, 3, 8, 6]
  root = construct_tree(pre_order, mid_order)
  print root.data
  print root.left.data
  print root.right.data
  print root.left.left.data
  print root.left.left.right.data
  print root.right.right.left
  print root.right.left.data

希望本文所述對大家Python程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩精品一二三 | 国产 一区 精品 | 天天操综 | 欧美一级成人 | 7777奇米成人四色影视 | 国产免费传媒av片在线 | 蜜桃传免费看片www 日本一区二区三区视频在线 | 日本s级毛片免费观看 | 91免费高清视频 | 黄色av免费网站 | 欧美一级淫片a免费播放口 91九色蝌蚪国产 | 亚洲成人中文字幕在线 | 精品亚洲va在线va天堂资源站 | 12av毛片| av成人免费在线观看 | 日日鲁夜夜视频热线播放 | 亚洲第一页中文字幕 | 中文字幕在线观看视频www | 亚洲一区二区免费 | 久久精品re | 久久影院免费观看 | 在线观看国产日韩 | 狠狠干天天操 | 性片网站 | 国产成人精品区 | 免费在线观看国产 | 99精品国产一区二区三区 | 国产亚洲欧美一区久久久在 | 国产1区在线观看 | 成人毛片久久 | 国产资源在线观看 | 国产乱淫av一区二区三区 | 一级黄色欧美 | 91精品动漫在线观看 | 91美女视频在线观看 | 久久中文字幕在线观看 | 一级黄色大片在线观看 | 成人午夜视频免费看 | 国产精品一区二区在线 | 日本在线观看一区二区 | 欧美精品电影一区 |