序列化:如圖,按前序進行序列化可得到字串1!2!3!4!-1!-1!5!-1!-1!3!-1!-1!,其中!表示乙個值的結束,-1表示該節點為空。
反序列化:序列化的逆操作。
附**
treenode* premaketree(treenode* root,int1.維護last和nlast指標。value)
return
root;
}void preorder(treenode*root)
else
printf(
"-1!");
}
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...