【发布时间】:2013-05-23 04:39:11
【问题描述】:
我知道如何在 AVL 树中搜索具有特定键的节点。但我想知道如何在平衡因子为 -2 的 AVL 树中进行搜索
这是我尝试过的代码。
void searchForUnrequiredBalanceFactor(avlnode *n , avlnode *r)
{
avlnode *ptr ;
ptr = n ;
if (ptr==NULL)
return;
else
{
if (ptr ->balFact == -2)
{
r = ptr ;
return ;
}
else
{
searchForUnrequiredBalanceFactor(ptr->left,r);
searchForUnrequiredBalanceFactor(ptr->right,r);
}
}
}
但是代码没有按要求工作,这是什么问题??
输出:
balance factor of node 3 : 0
balance factor of node 5 : 0
balance factor of node 10 : 0
balance factor of node 30 : 0
balance factor of node 25 : -1
balance factor of node 20 : -2
balance factor of node 15 : -1
*searchForUnrequiredBalanceFactor called and printf*
node with data : 0 have balance factor : 0
【问题讨论】:
-
我认为您应该在问题中提供至少几条信息:您得到的实际结果是什么?您是否计算了树中节点的平衡因子?树中是否存在平衡因子为 -2 的节点?
-
是的。我已经计算了节点的平衡因子,并且还有一个平衡因子为 -2 的节点。
标签: c data-structures avl-tree