利用双链表中的下一个指针

时间:2018-02-09 23:36:36

标签: c++ list search nodes doubly-linked-list

我遇到了搜索,选择和替换功能的问题。特别是,某一行代码导致我的程序崩溃(它刚开始运行然后崩溃,说执行失败)。这是我的搜索功能的代码(相同的代码行使程序崩溃):

unsigned int DoublyLinkedList::search(DataType value) const
{   
    if (size_ == 0)
        return size_;

    else
    {
        Node* temp = head_;

        for (int i = 0; i < size_; i++)
        {
            if (temp->value == value)
                return i;

            temp = temp->next;
        }

        return size_;
    }
}

从各方面来看,我相当确定这些代码应该按预期工作。但似乎“temp = temp-&gt; next”行正在使程序崩溃(运行没有该行的函数完全正常)。

我尝试在Eclipse IDE,Dev-C ++中运行它,但两者似乎都失败了。在我的代码中的其他地方是否存在我不想的问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

因为在使用构造临时 - &gt; next时取消引用空指针。 在此之前把if(temp)接下来做移动