二叉樹的遍歷及序列化

2021-05-28 13:41:29 字數 1255 閱讀 4024

#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 preorder(tree *root)

else}}

void inorder(tree *root)

else}}

void postorder(tree *root)

else else }}

}void levelorder(tree *root)

}void serialize(int*a, tree *root)

else}}

tree *unserialize(int*a, int n)

tmp = new tree;

tmp->data= a[i];

tmp->left= tmp->right= null;

s.push(make_pair(tmp,i));

root->left= tmp;

root = tmp;

} else

else }}

return ret;

}int main(int argc, char**argv)

cout

preorder(root);

cout

cout

cout

cout

int *a= new int[size];

memset(a, 0, sizeof(int)*size);

serialize(a,root);

/*for (int i=0; i*/

root = unserialize(a, size);

cout

preorder(root);

cout

cout

cout

cout

}

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

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

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

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

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

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