二叉樹的序列化和反序列化

2021-09-11 22:17:59 字數 712 閱讀 4675

二叉樹的序列化是指把二叉樹儲存成字串的形式,而二叉樹的反序列化則表示把儲存成字串形式的資料恢復成二叉樹。

根據二叉樹序列化的定義,二叉樹序列化比較簡單,用#表示為空,儲存時,每個節點用逗號隔開,這樣,用前序遍歷的形式就可以很容易序列化二叉樹。反序列化也同理:

class solution:

def __init__(self):

self.index=-1

def serialize(self, root):

# write code here

if root==none:

return "#,"

return str(root.val)+','+self.serialize(root.left)+self.serialize(root.right)

def deserialize(self, s):

# write code here

self.index+=1

temp=s.split(',')

res=none

if temp[self.index]!='#':

res=treenode(int(temp[self.index]))

res.left=self.deserialize(s)

res.right=self.deserialize(s)

return res

序列化 反序列化二叉樹

設計乙個演算法能夠實現序列化和反序列化一棵二叉樹 注意,不是二叉搜尋樹bst 這裡的序列化指的是將一棵二叉樹儲存到檔案中,反序列化就是從檔案中讀取二叉樹結點值重構原來的二叉樹。前一篇文章儲存二叉搜尋樹到檔案中 解決了儲存一棵二叉搜尋樹到檔案中的問題,但是由於本題目的意思是要把一棵二叉樹儲存到檔案中並...

序列化和反序列化二叉樹

請實現兩個函式,分別用來序列化和反序列化二叉樹。基本思想很簡單,序列化就是用某一種遍歷方法將二叉樹元素儲存在字串陣列中,當然要乙個個元素分離,分得清誰是誰。反序列化就是把儲存在字串陣列中的元素進行重構,使之成為二叉樹。我們不妨選擇前序遍歷的思想進行搜尋與重構。本題的關鍵是如何對元素進行儲存,可以放在...

序列化和反序列化二叉樹

請實現兩個函式,分別用來序列化和反序列化二叉樹 二叉樹的序列化是指 把一棵二叉樹按照某種遍歷方式的結果以某種格式儲存為字串,從而使得記憶體中建立起來的二叉樹可以持久儲存。序列化可以基於先序 中序 後序 層序的二叉樹遍歷方式來進行修改,序列化的結果是乙個字串,序列化時通過 某種符號表示空節點 以 表示...