c++编写算法建立一棵二叉树的二叉链表
时间: 2023-08-19 10:05:10 浏览: 99
设一棵二叉树以二叉链表表示,试编写有关二叉树的递归算法
5星 · 资源好评率100%
以下是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);
}
int main(){
TreeNode* root;
createTree(root);
cout << "前序遍历结果为:";
preorder(root);
return 0;
}
```
在上述代码中,`TreeNode` 结构体表示二叉树的节点,其中 `val` 表示节点的值,`left` 和 `right` 分别表示左右子树的指针,初始化为 `NULL`。`createTree` 函数用于建立二叉树,其中 `-1` 表示该节点为空。`preorder` 函数实现二叉树的前序遍历。在 `main` 函数中,首先调用 `createTree` 函数建立二叉树,然后调用 `preorder` 函数进行前序遍历。
阅读全文