构建二叉排序树输出父节点
构建二叉排序树输出父节点
插入结点时将当前结点的值也作为参数传递,如果当前要创建新节点插入,则将父亲的值输出
#include<iostream>
using namespace std;
typedef struct Btree{
int data;
struct Btree *left,*right;
}*Node,BtNode;
Node insert(Node tree,int data,int fat)
{
if(tree==NULL)
{
tree=new BtNode;
tree->data=data;
cout<<fat<<endl;
return tree;
}
else if(tree->data>data)
{
tree->left=insert(tree->left,data,tree->data);
}
else tree->right=insert(tree->right,data,tree->data);
return tree;
}
int main()
{
int n;
while(cin>>n)
{
Node p=nullptr;
int data;
for(int i=0;i<n;i++)
{
cin>>data;
p=insert(p,data,-1);
}
}
}学习要点
C++中结构体变量的动态创建
typedef struct Btree{
int data;
struct Btree left,right;
}*Node,BtNode;
使用new Btree或者new BtNode都可
