#include <iostream>
using namespace std;
struct treenode
{
int data; //结点存的值
treenode *left; //左子结点指针
treenode *right; //右子结点指针
};
//递归函数,用于建树
treenode *buildtree()
{
int data1; //结点存的值
cin>>data1;
if(data1==-1)
{
return nullptr; // 如果输入-1,则表示结束,返回空指针
}
treenode *node =new treenode;
node->data=data1; // 将节点的值设置为输入值
cout<<"shuru"<<" "<<data1<<" "<<"dezuozijiedian"<<endl;
node->left=buildtree(); // 递归建立左子节点
cout<<"shuru"<<" "<<data1<<" "<<"deyouzijiedian"<<endl;
node->right=buildtree(); // 递归建立右子节点
return node; // 返回建立好的节点
}
//递归打印树
void printtree(treenode *node)
{
if(node==nullptr)
{
return;
}
cout<<node->data<<" ";
printtree(node->left);
printtree(node->right);
}
int main()
{
treenode *root=buildtree();
printtree(root);
return 0;
}
全部回复 共 0 条
还没有人回复。往下写第一条。
发表回复
登录后即可回复本帖,与出题人和同学一起讨论。
登录