我在课堂上使用链接列表进行练习。我对这门语言比较陌生,但我已尝试过这种做法。指令告诉我们迭代直到找到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;但我只是不明白我的问题出了什么问题。
答案 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.
}