摘要:通常的方式,都是二叉樹生成字符串字符串生成二叉樹,遵循二叉樹的遞歸生成字符串的方式進行遍歷。碰到終止標志,才終止深度遞歸轉向另一個方向。原因字符串的遍歷方式,除了順序遍歷方式,也可以采用遞歸便利方式,遵循遞歸的規律。
通常的方式,都是二叉樹生成字符串
字符串生成二叉樹,遵循二叉樹的遞歸生成字符串的方式進行遍歷。
""" 1.二叉樹先序遍歷,可以保證按照容易理解的角度從上到下進行遍歷,顯示,輸出 2.先序后序中序遍歷,都是 深度遞歸,顯示上都會與直接直覺有出入 3.通過遍歷后的字符串,反出建立 二叉樹,可以尊徐 序列化的模式進行建立,同樣適用。 由于遍歷是深度遞歸形成字符串,所以生成二叉樹同樣可以深度遞歸。碰到終止標志,才終止深度遞歸轉向另一個方向。 bug原因:字符串的遍歷方式,除了順序遍歷方式,也可以采用遞歸便利方式,遵循遞歸的規律。 """ class TreeNode(object): def __init__(self,value): self.value=value self.leftnode=None self.rightnode=None str_raw="1246###5#73#89##" def deserialize(chars): if len(chars)==0: return None assert isinstance(chars,list) char_cur=chars.pop(0) if char_cur=="#": return None else: node_cur=TreeNode(char_cur) node_cur.leftnode=deserialize(chars) node_cur.rightnode=deserialize(chars) return node_cur out=deserialize(list(str_raw)) print(out) str_out="" def serialization(tree_in): global str_out str_out=str_out+tree_in.value if tree_in.leftnode: serialization(tree_in.leftnode) else: str_out+="#" if tree_in.rightnode: serialization(tree_in.rightnode) else: str_out+="#" serialization(out) print(str_out)
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43307.html
摘要:另外,由于篇幅有限,本篇的重點在于二叉樹的常見算法以及實現。常見的二叉樹實現代碼之前寫過相關的文章,是關于如何創建及遍歷二叉樹的,這里不再贅述。同時我們注意到,在二叉樹深度比較大的時候,我們光是比較左右是不夠的。 本篇為復習過程中遇到過的總結,同時也給準備面試的同學一份參考。另外,由于篇幅有限,本篇的重點在于二叉樹的常見算法以及實現。 常見的二叉樹實現代碼 之前寫過相關的文章,是關于如...
摘要:在數據結構領域對應樹結構來說二叉樹是最常用的一種樹結構,二叉樹具有一個唯一的根節點,也就是最上面的節點。二叉樹每個節點最多有兩個孩子,一個孩子都沒有的節點通常稱之為葉子節點,二叉樹每個節點最多有一個父親,根節點是沒有父親節點的。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言...
摘要:在數據結構領域對應樹結構來說二叉樹是最常用的一種樹結構,二叉樹具有一個唯一的根節點,也就是最上面的節點。二叉樹每個節點最多有兩個孩子,一個孩子都沒有的節點通常稱之為葉子節點,二叉樹每個節點最多有一個父親,根節點是沒有父親節點的。 showImg(https://segmentfault.com/img/remote/1460000018597053?w=1832&h=9943); 前言...
摘要:二叉堆的有趣之處在于,其邏輯結構上像二叉樹,卻是用非嵌套的列表來實現。二叉堆結構性質為了更好地實現堆,我們采用二叉樹。圖完全二叉樹有意思的是我們用單個列表就能實現完全樹。下列所示的代碼是完全二叉堆的實現。 優先隊列的二叉堆實現 在前面的章節里我們學習了先進先出(FIFO)的數據結構:隊列(Queue)。隊列有一種變體叫做優先隊列(Priority Queue)。優先隊列的出隊(Dequ...
閱讀 3243·2021-10-27 14:20
閱讀 2525·2021-10-08 10:05
閱讀 1625·2021-09-09 09:33
閱讀 2902·2019-08-30 13:16
閱讀 1435·2019-08-29 18:34
閱讀 1171·2019-08-29 10:58
閱讀 1228·2019-08-28 18:22
閱讀 1226·2019-08-26 13:33