构建二叉排序树输出父节点

构建二叉排序树输出父节点
插入结点时将当前结点的值也作为参数传递,如果当前要创建新节点插入,则将父亲的值输出

#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都可

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务