删除链表C ++中的节点(Deleting a node in a linked list C++)

编程入门 行业动态 更新时间:2024-10-24 13:29:19
删除链表C ++中的节点(Deleting a node in a linked list C++)

所以我很难让它工作,即使经过大量的谷歌搜索,我也无法完成它的工作。 这是我正在努力的功能:

bool deleteOneOf(const std::string & target) { Node * ptr = _first; Node * temp; while (ptr != nullptr) { if (target != ptr->_entry) { temp = ptr; ptr = ptr->_link; } else { temp->_link = ptr->_link; delete ptr->_link; return true; } } return false; }

我必须使用的Node类是:

class Node { public: std::string _entry; Node * _link; Node(std::string entry, Node * link) : _entry(entry), _link(link) {} };

非常感谢任何帮助,谢谢。

So I'm having a hard time getting this to work, and even after extensive googling I can't quite get it to work. Here's the function I'm working on :

bool deleteOneOf(const std::string & target) { Node * ptr = _first; Node * temp; while (ptr != nullptr) { if (target != ptr->_entry) { temp = ptr; ptr = ptr->_link; } else { temp->_link = ptr->_link; delete ptr->_link; return true; } } return false; }

The Node class I have to work with is this:

class Node { public: std::string _entry; Node * _link; Node(std::string entry, Node * link) : _entry(entry), _link(link) {} };

Any help is greatly appreciated, thanks.

最满意答案

你还没有初始化temp。 如果您正在查看列表中的第一个元素,它将指向垃圾。 此外,您需要删除ptr。 固定代码:

bool deleteOneOf(const std::string & target) { Node * ptr = _first; Node * temp = nullptr; while (ptr != nullptr) { if (target != ptr->_entry) { temp = ptr; ptr = ptr->_link; } else { if (temp) temp->_link = ptr->_link; else _first = ptr->_link; delete ptr; return true; } } return false; }

You haven't initialized temp. If you are looking at the first element in the list, it will point to garbage. Also, you need to delete ptr. Fixed code:

bool deleteOneOf(const std::string & target) { Node * ptr = _first; Node * temp = nullptr; while (ptr != nullptr) { if (target != ptr->_entry) { temp = ptr; ptr = ptr->_link; } else { if (temp) temp->_link = ptr->_link; else _first = ptr->_link; delete ptr; return true; } } return false; }

更多推荐

本文发布于:2023-04-29 08:18:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1335951.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:节点   链表   Deleting   list   linked

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!