二叉樹的按行層序遍歷及序列化和反序列化

2022-03-11 07:38:33 字數 648 閱讀 9726

序列化:如圖,按前序進行序列化可得到字串1!2!3!4!-1!-1!5!-1!-1!3!-1!-1!,其中!表示乙個值的結束,-1表示該節點為空。

反序列化:序列化的逆操作。

附**

treenode* premaketree(treenode* root,int

value)

return

root;

}void preorder(treenode*root)

else

printf(

"-1!");

}

1.維護last和nlast指標。

2.開始時last=root

3.佇列每次入隊更新nlast為當前入隊結點

4.當current=last時,進行換行操作,同時更新為nlast

附**

void levelorder1(treenode*root)

if(current->right!=null)

if(current==last) }}

二叉樹的遍歷及序列化

include include include using namespace std int my 2 power int b tree insert tree root,int data else else if data q data else return root void preorde...

二叉樹層序遍歷 求二叉樹的層序遍歷

給定乙個二叉樹,返回該二叉樹層序遍歷的結果,從左到右,一層一層地遍歷 例如 給定的二叉樹是,該二叉樹層序遍歷的結果是 3 9,20 15,7 示例1 輸入 返回值 1 2 示例2輸入 返回值 1 2,3 4,5 解題思路 重點是如何把在一層的節點放到一起,設定乙個引數專門放一層的節點 class t...

二叉樹的序列化和反序列化 用先序和層

元素之間用 分開,遇到用 隔開 即該序列化為 a b d e c f 利用先序遍歷的一大特點 訪問順序 中左右.在使用遞迴便可得到它的序列化 public static string serialbypre node head string res head.value res serialbypr...