首页 > 试题广场 >

证明下列的AA-树中删除的算法是正确的。 AATree R

[问答题]
证明下列的AA-树中删除的算法是正确的。
AATree
Remove(ElementType Item, AATree T)
{
      static Position DeletePtr, LastPtr;
      if (T!=NullNode)
     {
         LastPtr = T;
        if(Item < T -> Element)
             T->Left = Remove(Item, T->Left);
        else
        {
               DeletePtr = T;
               T-> Right = Remove(Item, T->Right);
         }
        if(T==LastPtr)
       {
              if(DeleterPtr != NullNode && Item == DeletePtr -> Element)
              {
                      DeletePtr -> Element = T -> Elementl
                      DeletePtr = NullNode;
                      T=T->Right;
                      free(LastPtr);
               }
         }    
          else
                 if(T->Left->Level < T->Level-1 || T->Right->Level < T-> Level-1)
                 {
                        if(T->Right->Level > -- T->Lebel)
                                T->Right->Lebel = T->Level;
                        T=Skew(T);
                        T->Right = Skew(T->Right);
                        T->Right->Right = Skew(T->Right->Right);
                        T=Split(T);
                        T->Right = Split(T->Right);
                   }
           }
           return T;
}

这道题你会答吗?花几分钟告诉大家答案吧!