在vc++6.0中初始化一个数据元素为字符串类型的二叉树,并对其实现创建及先序、中序、后序三种遍历
时间: 2024-02-03 19:13:24 浏览: 26
以下是在VC++ 6.0中初始化一个数据元素为字符串类型的二叉树,并对其实现创建及先序、中序、后序三种遍历的代码示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 定义二叉树结点
struct Node {
string data; // 数据元素为字符串类型
Node* left;
Node* right;
Node(string d) {
data = d;
left = right = NULL;
}
};
// 创建二叉树
Node* createBinaryTree() {
Node* root = new Node("A");
root->left = new Node("B");
root->right = new Node("C");
root->left->left = new Node("D");
root->left->right = new Node("E");
root->right->left = new Node("F");
root->right->right = new Node("G");
return root;
}
// 先序遍历
void preOrder(Node* root) {
if (root == NULL) return;
cout << root->data << " ";
preOrder(root->left);
preOrder(root->right);
}
// 中序遍历
void inOrder(Node* root) {
if (root == NULL) return;
inOrder(root->left);
cout << root->data << " ";
inOrder(root->right);
}
// 后序遍历
void postOrder(Node* root) {
if (root == NULL) return;
postOrder(root->left);
postOrder(root->right);
cout << root->data << " ";
}
int main() {
Node* root = createBinaryTree();
cout << "先序遍历结果:";
preOrder(root);
cout << endl;
cout << "中序遍历结果:";
inOrder(root);
cout << endl;
cout << "后序遍历结果:";
postOrder(root);
cout << endl;
return 0;
}
```
输出结果为:
```
先序遍历结果:A B D E C F G
中序遍历结果:D B E A F C G
后序遍历结果:D E B F G C A
```