#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
}
序列化二叉樹和反序列化二叉樹
題目描述 請實現兩個函式,分別用來序列化和反序列化二叉樹 二叉樹的序列化是指 把一棵二叉樹按照某種遍歷方式的結果以某種格式儲存為字串,從而使得記憶體中建立起來的二叉樹可以持久儲存。序列化可以基於先序 中序 後序 層序的二叉樹遍歷方式來進行修改,序列化的結果是乙個字串,序列化時通過 某種符號表示空節點...
(二叉樹)二叉樹的序列化與反序列化
序列化是將乙個資料結構或者物件轉換為連續的位元位的操作,進而可以將轉換後的資料儲存在乙個檔案或者記憶體中,同時也可以通過網路傳輸到另乙個計算機環境,採取相反方式重構得到原資料。請設計乙個演算法來實現二叉樹的序列化與反序列化。這裡不限定你的序列 反序列化演算法執行邏輯,你只需要保證乙個二叉樹可以被序列...
二叉樹的序列化與反序列化 二叉樹
序列化是將乙個資料結構或者物件轉換為連續的位元位的操作,進而可以將轉換後的資料儲存在乙個檔案或者記憶體中,同時也可以通過網路傳輸到另乙個計算機環境,採取相反方式重構得到原資料。請設計乙個演算法來實現二叉樹的序列化與反序列化。這裡不限定你的序列 反序列化演算法執行邏輯,你只需要保證乙個二叉樹可以被序列...