红黑树右旋伪代码

红黑树右旋伪代码

       人在做,天在看,但管学习,莫问前程。

 

     以下内容纯粹是为了记录,记录一下红黑树的右旋伪代码,以便下次学习的时候能够直接拿出来学习。

    红黑树右旋伪代码_第1张图片

    上图是红黑树中左旋和右旋的对应关系。

   下面列一下《算法导论》中,原文采用的是PASCAL语法格式,这里采用C语言伪代码贴出来,左旋的伪代码:

   LEFT_ROTATE(T,x)                     RIGHT_RORATE(T,x)

   y = right[x] ;                                  y = left[x] ;

   right[x] = left[y] ;                           left[x] = right[y] ;

   if left[y] != NULL                           if right[y] != NULL

        p[left[y]] = x ;                                p[right[y] ] = x ;

    p[y] = p[x] ;                                   p[y] = p[x] ;

    if p[x] = NULL                               if p[x] = NULL

        root[T] = y ;                                    root[T] = y ;

    else if x = left[p[x]]                       else if x = left[p[x]]

       left[p[x]] = y ;                                   left[p[x]] = y ;

    else                                                else

      right[p[x]] = y ;                                  right[p[x]] = y ;

 

   left[y] =x ;                                        right[y] =x ;

    p[x] = y ;                                          p[x] = y ;

 

 

  先写下来下次实现构造一棵红黑树。

 

 

 

 

 

你可能感兴趣的:(c,算法,null,语言,pascal)