我有一個AVL樹類,我想找到的每個節點的平衡因子(balance_factor: node->Left_child->height - node->right_Child->height
)AVL樹的平衡因素
這裏是我的代碼
int tree::findBalanceFactor(node p){
int a;
if(p.lchild) p.lchild->balance_factor=findBalanceFactor(*p.lchild);
if(p.rchild) p.rchild->balance_factor=findBalanceFactor(*p.rchild);
if(p.rchild && p.lchild) a=p.balance_factor = p.lchild->height - p.rchild->height ;
if(p.rchild && !p.lchild) a=p.balance_factor = 0 - p.rchild->height;
if(!p.rchild && p.lchild) a=p.balance_factor = p.lchild->height;
if(!p.rchild && !p.lchild) a=p.balance_factor = 0;
cout << "md" << a << endl;
return a;
但在主要功能當我打印root->balance_factor
它表明我總是編號爲零 balance_factor
是一個公共變量,並在構造函數中,我將0賦值爲 我的代碼有什麼問題?
預先感謝您:)
呵呵! : - 「:D是的,這是正確的,非常感謝你!! :) – user3182221