以二叉链表表示二叉树,建立一棵二叉树 c++
时间: 2024-01-23 18:41:53 浏览: 99
以下是用 C++ 实现二叉链表表示二叉树的代码,包括节点结构体和建立二叉树的函数:
```c++
#include <iostream>
using namespace std;
// 节点结构体
struct TreeNode {
char val; // 节点的值
TreeNode* left; // 左子节点
TreeNode* right; // 右子节点
TreeNode(char v) : val(v), left(nullptr), right(nullptr) {}
};
// 建立二叉树的函数
TreeNode* buildTree() {
char val;
cin >> val;
if (val == '#') { // '#' 表示该节点为空
return nullptr;
}
TreeNode* root = new TreeNode(val);
root->left = buildTree();
root->right = buildTree();
return root;
}
// 打印二叉树的函数(中序遍历)
void printTree(TreeNode* root) {
if (root == nullptr) {
return;
}
printTree(root->left);
cout << root->val << " ";
printTree(root->right);
}
int main() {
cout << "请输入二叉树的前序遍历序列('#'表示空节点):" << endl;
TreeNode* root = buildTree();
cout << "中序遍历结果为:" << endl;
printTree(root);
return 0;
}
```
使用示例:
```
请输入二叉树的前序遍历序列('#'表示空节点):
AB#CD##E#F##
中序遍历结果为:
B A D C E F
```
说明:上述代码中,`buildTree()` 函数实现了递归建立二叉树的过程,`printTree()` 函数实现了中序遍历二叉树的过程,用于输出二叉树的节点值。
阅读全文