关于排序二叉树的插入问题

来源:互联网 发布:淘宝c2c商业生态圈 编辑:程序博客网 时间:2024/05/16 02:38

今天做题做了好久,其实不难。做的题目是有关排序二叉树的问题,涉及到排序二叉树的插入问题。当然排序二叉树的插入可以写成递归的方式,有关伪代码如下:

typedef struct BST{    int data;    BST *left,*right;}BST;void Insert(BST *root,int num){if(root==NULL){root = (BiTNode *)malloc(sizeof(BiTNode));          root->data = num;root->left=NULL;root->right=NULL;  }else{if(root->data>num)root->left=Insert(root->left,num);//这个roo->left可以将树链接起来了elseroot->right=Insert(root->right,num);}}
非递归写法:

void Insert(BST *&point,int num){   if(point==NULL){        point=(BST *)malloc(sizeof(BST));        point->data=num;        point->left=NULL;        point->right=NULL;   }   else{        BST *temp=point;        BST *temp_p=NULL;        while(temp!=NULL){            temp_p=temp;            if(num<temp->data)                temp=temp->left;            else                temp=temp->right;        }        temp=(BST*)malloc(sizeof(BST));        temp->data=num;        temp->left=NULL;        temp->right=NULL;        //在此添加temp_p和temp的大小判断       //cout<<temp_p->data<<endl;        if(temp_p->data > temp->data){            temp_p->left=temp;        }        else            temp_p->right=temp;   }}



0 0
原创粉丝点击