互评作业 4.19

作业展示

1.伪代码部分

(第一问)SearchBST(T, key)
{
    if ((T不为空)或者key == T根结点值)return T;
    else if(key小于T结节点的值);
      返回 SerachBST(T结点左孩子,key);
    else 返回 SerachBST(T结点右孩子,key);
    }


(第一问)InsertrBST(T,key)
{
    if(T为空) key作为根结点插入;
    else {
            if(key<T值)T左孩子=Insert(T左孩子,key);
            else(key>T值) T右孩子=Insert(T右孩子,key);
          }
    return T;
}


(第二问)CreateBST(T,int a[],int n)
{
    T为空树;
    for(int i=0;i<n;i++)按照数组元素个数进行循环插入
    InsertrBST(T,a[i])插入二叉排序树中
}


(第三问)DeleteBST(T,key)
{
    if(T为空)返回;
    else{
            if(T->data==key){
                  返回DeletenodeBST(T);
         }
    else if(T->data大于key)
        返回DeletenodeBST(T->lchild,key);
    else 返回DeletenodeBST(T->rchild,key);
         }
}
DeletenodeBST(T)
{
    定义排序树p,s;
    if(T左孩子为空){
      p等于T;
      T等于T左孩子;
    }
    else if(T右孩子为空){
      s等于T;
      T等于T右孩子;
    }
    else {
       p等于T;
       P等于T左孩子;
       while(s右孩子不为空){
              p=s;
              s等于s右孩子;
           }
      }
}

2.代码及结果展示(第一问,第二问)

结果

posted @ 2020-04-19 16:34  MIKELOVE  阅读(108)  评论(0编辑  收藏  举报