1. 以二叉链表为存储结构,实现二叉树的创建、遍历(实验类型:验证型)c++语言
时间: 2024-01-21 12:18:45 浏览: 193
基于C++的二叉树的实现和遍历
下面是二叉链表实现二叉树的创建和遍历的示例代码:
```c++
#include <iostream>
using namespace std;
// 二叉树结点的定义
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 创建二叉树
void createTree(TreeNode*& root) {
int val;
cin >> val;
if (val == -1) { // 输入 -1 表示该结点为空
root = NULL;
} else {
root = new TreeNode(val);
createTree(root->left);
createTree(root->right);
}
}
// 前序遍历
void preOrder(TreeNode* root) {
if (root == NULL) return;
cout << root->val << " ";
preOrder(root->left);
preOrder(root->right);
}
// 中序遍历
void inOrder(TreeNode* root) {
if (root == NULL) return;
inOrder(root->left);
cout << root->val << " ";
inOrder(root->right);
}
// 后序遍历
void postOrder(TreeNode* root) {
if (root == NULL) return;
postOrder(root->left);
postOrder(root->right);
cout << root->val << " ";
}
int main() {
TreeNode* root;
createTree(root);
cout << "前序遍历:";
preOrder(root);
cout << endl;
cout << "中序遍历:";
inOrder(root);
cout << endl;
cout << "后序遍历:";
postOrder(root);
cout << endl;
return 0;
}
```
上述代码中,我们使用了二叉链表的方式来存储二叉树。在创建二叉树时,我们通过递归方式来构建二叉树,输入 -1 表示该结点为空。在遍历二叉树时,我们分别实现了前序、中序和后序遍历,并输出遍历结果。
阅读全文