檢驗一顆樹是不是另一顆樹的子結構
思路:遍歷樹,使用遞迴方法。1.先判斷節點值是否相等,如果相等則繼續判斷他們的子樹是否相等;2.如果不相等則判斷他們的子樹是否相等。這樣一直遞迴。退出條件為知道子樹到葉節點了,
class BinaryTreeNode(object):
def __init__(self,data,left=None,right=None):
self.data = data
self.left = left
self.right = right
A = BinaryTreeNode("A")
B = BinaryTreeNode("B")
C = BinaryTreeNode("C")
D = BinaryTreeNode("D")
E = BinaryTreeNode("E")
F = BinaryTreeNode("F")
G = BinaryTreeNode("G")
A.data = 8
B.data = 8
C.data = 7
D.data = 9
E.data = 2
F.data = 4
G.data = 7
A.left = B
A.right = C
B.left = D
B.right=E
E.left = F
E.right = G
A_ = BinaryTreeNode("A_")
B_ = BinaryTreeNode("B_")
C_ = BinaryTreeNode("C_")
A_.data = 8
B_.data = 9
C_.data = 2
A_.left = B_
A_.right = C_
def isSub(tree1,tree2):
if tree2 is None:
return True
if tree1 is None:
return False
if tree1.data != tree2.data:
return False
return isSub(tree1.left,tree2.left) and isSub(tree1.right,tree2.right)
def hashB(tree1,tree2):
r = False
if tree1 is None or tree2 is None:
return False
if tree1.data == tree2.data:
r = isSub(tree1,tree2)
if not r:
r = hashB(tree1.left,tree2)
if not r:
r = hashB(tree1.right,tree2)
return r
print "---",hashB(A,A_)
相關文章
- 資料結構實驗六是否同一顆二叉樹資料結構二叉樹
- Leetcode-572: 另一個樹的子樹( leetcode100:相同的樹 )LeetCode
- 建立一顆二叉樹,並求它的高度 7074二叉樹
- 樹的另一個構建方式
- 從後端到前端之Vue(三)小結以及一顆真實的大樹後端前端Vue
- 【C++】判斷一顆二叉樹是否對稱C++二叉樹
- [資料結構] BFS演算法實現層序遍歷輸出一顆二叉樹資料結構演算法二叉樹
- 如何用樹莓派搭建一個顆粒物感測器樹莓派
- 二叉樹的子結構二叉樹
- JZ-017-樹的子結構
- 如何使用樹莓派測定顆粒物(PM 2.5)樹莓派
- 由中序序列和先序序列確定一顆二叉樹二叉樹
- 程式設計師的聖誕節--送她一顆聖誕樹(附原始碼)程式設計師原始碼
- 程式設計師的聖誕節–送她一顆聖誕樹(附原始碼)程式設計師原始碼
- Linux 下樹形結構的檢視Linux
- 二叉樹的子結構、深度以及重建二叉樹二叉樹
- 劍指offer-17:樹的子結構
- 12顆小球,有一顆質量不一樣的面試題面試題
- 在“晶片庭院”培育一顆多核異構 RISC-V SOC種子晶片
- 一類子樹問題的總結
- 樹的學習——樹的儲存結構
- 樹結構總結
- 資料結構之樹( 線段樹,字典樹)資料結構
- 反轉連結串列、合併連結串列、樹的子結構
- 樹形結構
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 樹結構的應用
- 資料結構(樹):二叉樹資料結構二叉樹
- HDU 1671 字典樹(判斷是否有一個串是另一個串的子串)。
- 資料結構中的樹(二叉樹、二叉搜尋樹、AVL樹)資料結構二叉樹
- 資料結構——樹資料結構
- 資料結構-樹資料結構
- 【Algorithm】樹結構整理Go
- XML 樹結構概述XML
- 資料結構的故事之二叉樹, 字首樹, N叉樹資料結構二叉樹
- JavaScript 中一顆有毒的語法糖JavaScript
- 淺談樹形結構的特性和應用(上):多叉樹,紅黑樹,堆,Trie樹,B樹,B+樹...
- 資料結構之樹結構概述(含滿二叉樹、完全二叉樹、平衡二叉樹、二叉搜尋樹、紅黑樹、B-樹、B+樹、B*樹)資料結構二叉樹