C ++ Linked List:对象的IndexOf

时间:2012-05-24 17:21:16

标签: c++ indexing linked-list nodes

我试图在链表中找到给定对象的索引。 我想返回-1是我的列表中不存在的对象。 以下是我的代码,请指导我。

int List::indexOf(const Object& o) const
{
    Node* tempNode = first;
    int count = 0;
    while(tempNode != NULL)
    {
        if (o.compare(tempNode->o) == 0)
        {
            break;
        }
    ++count;
    tempNode = tempNode->next;
    }
    return count;
}

1 个答案:

答案 0 :(得分:1)

为什么不从循环内部返回?

Node* tempNode = first;
    int count = 0;
    while(tempNode != NULL)
    {
       if (o.compare(tempNode->o) == 0)
       {
           //return the count when you found a match
           return count;
       }
       ++count;
       tempNode = tempNode->next;
    }
    //return -1 if no match is found
    return -1;
}

您还可以存储一个辅助工具,告诉您是否找到了该节点,但这种方法更清晰IMO。