时间: 2020-06-15 18:46
void serialization(btree* head, queue<int>*& que) {
if (!head) {
return;
}
queue<btree*> treeQue;
treeQue.push(head);
que->push(head->data);
while (!treeQue.empty()) {
btree* p = treeQue.front();
treeQue.pop();
if (p->left) {
treeQue.push(p->left);
que->push(p->left->data);
}
else {
que->push(NULL);
}
if (p->right) {
treeQue.push(p->right);
que->push(p->right->data);
}
else {
que->push(NULL);
}
}
}
btree* buildNode(queue<int>* que) {
int num = que->front();
que->pop();
if (!num) {
return NULL;
}
btree* node = new btree;
node->data = num;
return node;
}
btree* bulidTree(queue<int>* que) {
if (!que) {
return NULL;
}
btree* head = buildNode(que);
queue<btree*> team;
team.push(head);
while (!team.empty()) {
btree* node = team.front();
team.pop();
node->left = buildNode(que);
node->right = buildNode(que);
if (node->left) {
team.push(node->left);
}
if (node->right) {
team.push(node->right);
}
}
return head;
}