二叉樹的序列化

2021-08-07 13:05:35 字數 1120 閱讀 5190

首先我們介紹二叉樹先序序列化的方式,假設序列化的結果字串為str,初始時str等於空字串。先序遍歷二叉樹,如果遇到空節點,就在str的末尾加上「#!」,「#」表示這個節點為空,節點值不存在,當然你也可以用其他的特殊字元,「!」表示乙個值的結束。如果遇到不為空的節點,假設節點值為3,就在str的末尾加上「3!」。現在請你實現樹的先序序列化。

給定樹的根結點root,請返回二叉樹序列化後的字串。

我的提交

# -*- coding:utf-8 -*-

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

treetostring:

deftostring

(self, root):

# write code here

ifnot root:

return

'#!'

stack =

string = ''

while stack:

node = stack.pop()

if node:

string += str(node.val) + '!'

else:

string += '#!'

return string

參***

/*

struct treenode

};*/

class treetostring

void convert(treenode* root,string &ret)

ret = ret + getstring(root->val) + "!";

convert(root->left,ret);

convert(root->right,ret);

}string tostring(treenode* root)

};

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

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

(二叉樹)二叉樹的序列化與反序列化

序列化是將乙個資料結構或者物件轉換為連續的位元位的操作,進而可以將轉換後的資料儲存在乙個檔案或者記憶體中,同時也可以通過網路傳輸到另乙個計算機環境,採取相反方式重構得到原資料。請設計乙個演算法來實現二叉樹的序列化與反序列化。這裡不限定你的序列 反序列化演算法執行邏輯,你只需要保證乙個二叉樹可以被序列...

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

序列化是將乙個資料結構或者物件轉換為連續的位元位的操作,進而可以將轉換後的資料儲存在乙個檔案或者記憶體中,同時也可以通過網路傳輸到另乙個計算機環境,採取相反方式重構得到原資料。請設計乙個演算法來實現二叉樹的序列化與反序列化。這裡不限定你的序列 反序列化演算法執行邏輯,你只需要保證乙個二叉樹可以被序列...