函数从单链表和错误服务获取密钥

时间:2019-04-08 21:40:33

标签: c++ singly-linked-list

我有一个序列(单链表):

product_id,model,viewed,ups...

以及该功能:

class Sequence
{
    struct Node {
        Key key;
        Info info;
        Node *next;
    };

Node *head = NULL;

它应该基于给定的参数POS获得密钥,该密钥在列表中的位置。当它完全适合列表的范围时,则不适用于负值(它应显示此节点不存在的一些文本)和值超出范围(与负数相同)。 哪里有错?

1 个答案:

答案 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;
}