代码如下:
#include<iostream>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
using namespace std;
typedef struct binary_Tree//定义树的数据域
{
int num;
struct binary_Tree *left;
struct binary_Tree *right;
}Node;
typedef struct//定义根结点
{
Node *root;
}BTree;
void CreateBTree(BTree *tree,int num1)
{
//给树的根节点初始化
Node *node=(Node *)malloc(sizeof(Node));
node->num=num1;
node->left=NULL;
node->right=NULL;
if(tree->root==NULL)
{
tree->root=node;
}
else
{
//使指针指向根结点
Node *t=tree->root;
while(t!=NULL)
{
if(t->left==NULL)//如果左节点为空则把数据结点存入该结点
{
t->left=node;
return;
}
else
t=t->left;
if(t->right==NULL)//如果右节点为空则把数据结点存入该结点
{
t->right=node;
return;
}
else
t=t->right;
}
}
return;
}
void midlookBTree(Node *node)//中序遍历
{
if(node!=NULL)
{
midlookBTree(node->left);
cout<<node->num<<" ";
midlookBTree(node->right);
}
}
int main()
{
BTree tree;
tree.root=NULL;
int i=0,n;
cout<<"你想输入几个数据?"<<endl;
cin>>n;
cout<<"请输入你的数据:"<<endl;
while(i<n)
{
int num1;
cin>>num1;
CreateBTree(&tree,num1);
i++;
}
system("CLS");
midlookBTree(tree.root);
getch();
return 0;
}
运行结果: