我對鏈接列表的概念感到困惑。所以我試圖實現一些功能來幫助我理解。在鏈接列表(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'函數應該從列表中刪除第一個項目並**返回**,現在你只是失去了這個項目,沒有指向它的指針,沒有辦法使用它或釋放它使用的內存。 –