二叉树排序的插入

来源:互联网 发布:设计师个人主页源码 编辑:程序博客网 时间:2024/05/17 07:32

4.请给出二叉树排序的插入算法,节点的数据结构如下

typedef structBtNode{

int value;

struct BtNode*lchild, *rchild;

}BtNode;

请实现插入算法

int Insert(BtNode*root, int value);

{

       BtNode *prev = NULL, *tmp = NULL;

 

       If (root == NULL) return -1;

 

       while (root != NULL) {

              if (value < root->value) {

                     prev = root;

                     root = root->lchild;

              } else if (value >root->value) {

                     prev = root;

                     root = root->rchild;            

              } else return -1;

       }

 

       if (value < prev->value) {

              tmp =(BtNode*)malloc(sizeof(BtNode));

              tmp->value = value;

              tmp->lchild = tmp->rchild =NULL;

              prev->lchild = tmp;

       } else {

              tmp =(BtNode*)malloc(sizeof(BtNode));

              tmp->value = value;

tmp->lchild = tmp->rchild = NULL;

              prev->rchild = tmp;

 

       }

       return 0;

}

0 0
原创粉丝点击