如何替换链表中某个节点的数据?

时间:2016-10-23 23:49:47

标签: c++ linked-list nodes

我在课堂上使用链接列表进行练习。我对这门语言比较陌生,但我已尝试过这种做法。指令告诉我们迭代直到找到NodeData,然后使用集合替换数据。" 什么是"集合"在C ++中?我在网上看了,我找不到任何东西。我唯一能想到的是将节点设置为指向其他位置。例如head->NULL。但如果我只是简单地替换数据,这真的是必要的吗?要替换我尝试temp->order = NEWDATA的数据。这是正确的实施吗?它似乎没有用。也许这是代码中不同部分的错误。

bool OrderLL::Modify(Order * NodeData) {
    OrderNode *temp = head;
    if (temp == NULL) {
        cout << "Empty List";
    }
    else {
        while (temp != NULL) {
            if (temp->order == NodeData) {

                //not sure if this is the proper way of deleting data inside a node
                delete anOrder;
               //HOW DO I REPLACE THE DATA IN THIS PART?
            }
            temp = temp->next;
        }
    }

return false;
}

另一方面,我真的不明白为什么我继续接受所有问题的投票。是因为他们是基本的C ++问题吗?它们对我来说不是那么基本。我知道这个网站看不起&#34; offtopic / chat discussion&#34;但我只是不明白我的问题出了什么问题。

1 个答案:

答案 0 :(得分:1)

你提到&#34;替换&#34;在你的问题中,所以只是猜测,但可能是你应该更换节点本身而不仅仅是数据。在这种情况下,它将是这样的

if(curr_node->data == to_replace_data){
  curr_node->next = new_node;
  new_node->next = curr_node->next->next;
  free( curr_node->next); //or return curr_node->next depending on what
                      // you are trying to do.
}