亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問第18行是什么意思,X已經是T->left,為什么還會小于T- >left?

請問第18行是什么意思,X已經是T->left,為什么還會小于T- >left?

慕的地8271018 2023-04-24 21:17:28
AvlTreeInsert( ElementType X, AvlTree T){1 if( T == NULL)2 {3 /* Create and return a one-onde tree */4 T = malloc( sizeof( struct AvlNode ) );5 if( T == NULL )6 FatalError( "Out of space!!!");7 else8 {9 T->Element = X; T->Height = 0;10 T->Left = T->Right = NULL;11 }12 }13 else14 if( X < T->Element )15 {16 T->left = Insert(x, T->left );17 if( Height( T->left ) - Height( T->Right ) == 2 )18 if( X < T->Left->Element )19 T = SingleRotatewithLeft( T );20 else21 T = DoubleRotateWithLeft( T );22 }23 else24 if( X > T->Element )25 {26 T->Right = Insert( X, T->Right );27 if( Height( T->Right ) - Height( T->Left ) == 2 )28 if( X > T->Right->Element )29 T = SingleRotateWithRight( T );30 else31 T = DoubleRotateWithRight( T );32 }33 /* Else X is in the tree already; we'll do nothing */34 T->Height = Max( Height( T->Left ), Height( T->Right ) ) + 1;35 return T;}
查看完整描述

1 回答

?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

你理解錯了,前面說的只是在T->left 中插入x,但是并不清楚在左子樹的什么地方插入
第18行的意思是在T的左子樹的左子樹插入,自然是執行一個向右的單旋轉來平衡,如果是在T的左子樹的右子樹中插入,自然執行一個先左后右的雙旋轉來平衡

查看完整回答
反對 回復 2023-04-27
  • 1 回答
  • 0 關注
  • 232 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號