二叉链表创建 二叉树,c++
时间: 2024-01-23 22:43:01 浏览: 77
二叉链表结构的二叉树的类定义-树和森林--清华大学课程讲义-数据结构(PPT)
下面是一个示例代码,实现了基于二叉链表的二叉树的创建和遍历:
```cpp
#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;
cout<<"请输入节点的值:"<<endl;
cin>>val;
if(val == -1){
root = NULL;
return;
}
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表示该节点为空。例如,输入如下数据:
```
请输入节点的值:
1
请输入节点的值:
2
请输入节点的值:
-1
请输入节点的值:
-1
请输入节点的值:
3
请输入节点的值:
-1
请输入节点的值:
-1
```
则创建的二叉树如下:
```
1
/ \
2 3
/ \ / \
N N N N
```
其中,N表示空节点。最后输出的遍历结果分别为:
```
前序遍历结果:1 2 3
中序遍历结果:2 1 3
后序遍历结果:2 3 1
```
阅读全文