C语言 有没有办法知道节点在AVL树中给出节点级别



您好,我只是计算机科学专业的新生,当我在AVL树中插入或删除节点时,我很困惑如何设置和更新节点级别(深度(。因为当您在 AVL 中插入或删除时,它有可能旋转以平衡自身。有没有办法设置和更新AVL树节点级别谢谢。我使用C作为编程语言。

感谢所有查看此问题的人。但实际上我已经想出了该怎么做,我不知道是否有更好的方法,但如果有,请告诉我谢谢。

这是我的方法,我遍历所有树,每当它在某个节点停止时,我都会给节点关卡。

void giveLevel(int value)
{
struct node *ptr;
int count = 0;
if (root == NULL)
{
return;
}
else
{
ptr = root;
while (ptr != NULL)
{
count++;
if (value == ptr->key)
{
ptr->level = count;
printf(">> %d n", count);
return;
}
if (value < ptr->key)
{
ptr = ptr->left;
}
else
{
ptr = ptr->right;
}
}
}   
}
void inOrder(struct node *root)
{
if (root == NULL)
{
return;
}
inOrder(root->left);
giveLevel(root->key);
inOrder(root->right);
} 

最新更新