**fig4_40.txt** /* 1*/ // This function can be called only if k2 has a left child. /* 2*/ // Perform a rotate between a node ( k2 ) and its left child. /* 3*/ // Update heights. /* 4*/ template /* 5*/ void /* 6*/ S_Rotate_Left( Avl_Node * & k2 ) /* 7*/ { /* 8*/ Avl_Node *k1 = ( Avl_Node * ) k2->Left; /* 9*/ k2->Left = k1->Right; /*10*/ k1->Right = k2; /*11*/ k2->Height = Max( Node_Ht( k2->Left ), /*12*/ Node_Ht( k2->Right ) ) + 1; /*13*/ k1->Height = Max( Node_Ht( k1->Left ), k2->Height ) + 1; /*14*/ k2 = k1; /*15*/ }