C ++链接列表错误转到下一个节点

时间:2013-08-24 10:34:27

标签: c++ linked-list

我需要从文件中读取单词然后将其放入链接列表中 我在这里(下面)有这些代码插入链接列表部分 该向量包含我从文件中读取的单词

    List( vector <string> &v )
    {
        ListNode *cur = head;

        for ( int i = 0 ; i < v.size() ; i++ )
        {
            //cout << v[i] << endl;

            ListNode *newNode = new ListNode;

            newNode->item = v[i];

            if ( i == 0 )      // first node
            {
                newNode->next = NULL;
                head = newNode;
            }

            else               // insert node into the back
            {
                ListNode *prev = cur;
                newNode->next = prev->next;
                prev->next = newNode;
            }

            cout << cur->item << endl;

            system("pause");
        }
    }

我的问题是我的节点在将一个单词插入节点后没有进入下一个节点 我试着把cur = cur-&gt;下一个;在cout&lt;&lt;之间cur-&gt; item&lt;&lt; ENDL;和系统(“暂停”);
该程序给我错误

1 个答案:

答案 0 :(得分:0)

您没有正确更新子节点。请在else块中尝试此操作。

else 
{
   ListNode *prev = cur;
   prev->next = newNode;
}
cur = newNode;

它可以更简单地重写。但首先要尝试纠正现有的程序,然后再进行有效的程序。希望这有帮助!