建立二叉树存储结构的输入函数
时间: 2023-11-12 17:09:06 浏览: 44
二叉树的存储结构有很多种,以下是一种基于链式存储的二叉树输入函数的示例代码,希望能对您有所帮助:
```c++
#include <iostream>
using namespace std;
// 二叉树结点的结构体
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 输入二叉树函数
void input(TreeNode* &root) {
int val;
cin >> val;
if (val == -1) { // 如果输入 -1,表示当前结点为空
root = NULL;
} else {
root = new TreeNode(val); // 新建结点
input(root->left); // 递归输入左子树
input(root->right); // 递归输入右子树
}
}
int main() {
TreeNode* root;
cout << "请输入二叉树结点的值,以 -1 结束:" << endl;
input(root);
return 0;
}
```
在这段代码中,我们使用了一个输入函数 `input` 来构建二叉树。函数的输入参数是指向根结点的指针 `TreeNode* &root`,因为我们需要修改根结点的指向,所以使用引用。函数内部先读入一个整数 `val`,表示当前结点的值,如果 `val` 为 -1,则表示当前结点为空结点,将其指针赋为 NULL;否则,新建一个结点,并递归调用 `input` 函数输入左右子树。最后,在 `main` 函数中调用 `input` 函数,传入根结点指针的引用,即可完成二叉树的输入。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)