我有一个序列(单链表):
product_id,model,viewed,ups...
以及该功能:
class Sequence
{
struct Node {
Key key;
Info info;
Node *next;
};
Node *head = NULL;
它应该基于给定的参数POS获得密钥,该密钥在列表中的位置。当它完全适合列表的范围时,则不适用于负值(它应显示此节点不存在的一些文本)和值超出范围(与负数相同)。 哪里有错?
答案 0 :(得分:-1)
跟踪Sequence
对象内部列表的大小。这样您就可以先进行检查:
template <typename Key, typename Info>
Key Sequence<Key, Info>::getKey(int pos)const
{
//Add a size() member function to sequence that returns the size
// Store the size as a member variable
if(pos >= size() || pos < 0) {
cout << "no Node with such a key" << endl;
return NULL;
}
Node *curr = head;
int i = 1;
while((curr) && (i < pos))
{
i++;
curr = curr->next;
}
if(curr)
{
return curr->key;
}
return NULL;
}