您好,我遇到了一个似乎无法解决的问题。我有一个 BST,我正在遍历并检查排名。我有一个方法checkRank(link head, targRank)
,它接收头节点并遍历树,直到找到与 targRank 具有相同等级的节点。我想要做的是让 checkRank 函数返回它找到相同等级的当前节点。实现这一目标的最佳方法是什么,因为我所有的尝试似乎都将当前节点作为头部返回?
typedef struct node* link;
struct node
{
Item item; // Data for this node
link l, r; // left & right links
int rank;
};
函数调用:
link head;
checkRank(head, 13);
功能:
link checkRank(link h,int targetRank)
{
if (h != NULL)
{
if (h->rank < targRank)
{
checkRank(h->r, targRank);
}
if (h->rank > tarRank)
{
checkRank(h->l, targtRank);
}
if (h->rank == targRank)
{
return ??;
}
}
else
{
printf("Equiv rank could not be found\n");
}
}