创建树

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
typedef struct tree{
int data;
struct tree *left,*right;
}Tree;
void CreatBTree(Tree *&T){
T=new Tree;
T->left=NULL;
T->right=NULL;
int data;
cin>>data;
if(data==-1){
T=NULL;
return;
}else{
T->data=data;
}
CreatBTree(T->left);
CreatBTree(T->right);
}
void preorder(Tree *T){
if(T!=NULL){
cout<<T->data<<" ";
preorder(T->left);
preorder(T->right);
}
}
void midorder(Tree *T){
if(T!=NULL){
midorder(T->left);
cout<<T->data<<" ";
midorder(T->right);
}
}
void lastorder(Tree *T){
if(T!=NULL){
lastorder(T->left);
lastorder(T->right);
cout<<T->data<<" ";
}
}
int main()
{
Tree *T;
cout<<"输入先序创建二叉树的序列:"<<endl;
CreatBTree(T);
cout<<"先序遍历后的结果为:"<<endl;
preorder(T);
cout<<endl;
cout<<"中序遍历后的结果为"<<endl;
midorder(T);
cout<<endl;
cout<<"后序遍历后的结果为"<<endl;
lastorder(T);
return 0;
}

猜你喜欢

转载自www.cnblogs.com/lianxiang951/p/10794099.html