一个数据结构的简单作业,关于二叉树的!!高手帮忙。急!明天晚上之前,好的给分数

来源:百度知道 编辑:UC知道 时间:2024/06/13 18:05:54
1用二叉链表作为存储结构,建立一棵二叉树。
2分别按先序、中序、后序和层次顺序遍历二叉树。
3编写交换二叉树中所有结点的左、右孩子的非递归算法。

struct Tree {
int value;
Tree *left, *right;
Tree() {}
~Tree() {
delete left;
delete right;
}
};

void preorder(Tree* root) {
if (root == 0) {
return;
}
printf("%d ", root->value);
preorder(root->left);
preorder(root->right);
}

void midorder(Tree* root) {
if (root == 0) {
return;
}
midorder(root->left);
printf("%d ", root->value);
midorder(root->right);
}

void postorder(Tree* root) {
if (root == 0) {
return;
}
postorder(root->left);
postorder(root->right);
printf("%d ", root->value);
}

void changeChildren(Tree* root) {
deque<Tree*> que;
que.push_back(root);
while (!que.empty()) {