給定一棵二叉樹,實現序列化與反序列化。
序列化的方式:
* 根據先序遍歷序列化
* 根據後序遍歷序列化
* 根據層序遍歷序列化
1. 假設序列化的結果為 str ,初始時str為空字串
2. 先序遍歷二叉樹時如果遇到空節點,在str末尾加上「#,」
3. 如果遇到不為空的結點,假設節點值為3,就在str的末尾加上「3,」。
如下所示
**實現
string serialize(treenode node)
stringbuilder res = new stringbuilder();
return res+"";
}
反序列化:將 str 轉化成陣列 values = ;
然後按照先序過程依次進行建樹 :根節點為1——》左孩子為2——》左孩子為null——》有孩子為null——》回到根節點上的右孩子為null;
**實現
int index = -1;
treenode deserialize(string str)
string strr = str.split(",");
treenode node = null;
if(!strr[index].equals("#"))
return node;
}
序列化二叉樹和反序列化二叉樹
題目描述 請實現兩個函式,分別用來序列化和反序列化二叉樹 二叉樹的序列化是指 把一棵二叉樹按照某種遍歷方式的結果以某種格式儲存為字串,從而使得記憶體中建立起來的二叉樹可以持久儲存。序列化可以基於先序 中序 後序 層序的二叉樹遍歷方式來進行修改,序列化的結果是乙個字串,序列化時通過 某種符號表示空節點...
(二叉樹)二叉樹的序列化與反序列化
序列化是將乙個資料結構或者物件轉換為連續的位元位的操作,進而可以將轉換後的資料儲存在乙個檔案或者記憶體中,同時也可以通過網路傳輸到另乙個計算機環境,採取相反方式重構得到原資料。請設計乙個演算法來實現二叉樹的序列化與反序列化。這裡不限定你的序列 反序列化演算法執行邏輯,你只需要保證乙個二叉樹可以被序列...
二叉樹的序列化與反序列化 二叉樹
序列化是將乙個資料結構或者物件轉換為連續的位元位的操作,進而可以將轉換後的資料儲存在乙個檔案或者記憶體中,同時也可以通過網路傳輸到另乙個計算機環境,採取相反方式重構得到原資料。請設計乙個演算法來實現二叉樹的序列化與反序列化。這裡不限定你的序列 反序列化演算法執行邏輯,你只需要保證乙個二叉樹可以被序列...