我对链接列表的概念感到困惑。所以我试图实现一些功能来帮助我理解。在链接列表(C++)中实现pop()函数
struct Node {
string val;
Node* next;
Node* prev;
};
struct Stew {
Node* first;
Node* last;
};
所以这里,炖具有特殊的指针,前面的元素和最后一个元素。
我试图删除第一个元素(弹出)。
所以我尝试过如下,我似乎无法找出什么在它的错误是:
void pop (Stew& q) {
assert (!isEmpty(q));
q.first = q.first->next;
q.first -> prev = NULL;
}
任何帮助,将不胜感激,谢谢!
顺便说一下,我目前使用C++ 98,而不是C++ 11。
什么告诉你这是错误的?你会得到编译时/运行时错误还是行为不正确,在哪些情况下不正确? – Nabla
是否有某些原因,你没有在链表类中封装'pop'函数? –
请注意,一个'pop'函数应该从列表中删除第一个项目并**返回**,现在你只是失去了这个项目,没有指向它的指针,没有办法使用它或释放它使用的内存。 –