我需要一個函數,根據它的位置從鏈接列表中搜索一個項目,將信息保存在一個變量中並刪除它。例如,我想刪除列表中的第五個項目,並將其內容保存到int &數字;和字符串&文本;我的列表僅在一個方向上鍊接。 我想我已經設法做到了這一發現,但將其刪除有點困難。刪除單向鏈表中的項目
private:
struct List_cell{
unsigned number;
string text;
List_cell *next;
};
List_cell *list_first_;
。
bool LinkedList::find_and_remove(unsigned& position, unsigned& count, unsigned& found_number, string& found_text){
List_cell *current = list_first_;
if(current == nullptr){
return false;
}
else{
while(current != nullptr){
count++;
current = current->next;
if(count == position){
found_number = current->number;
found_text = current->text;
//here should be the deleting i think
return true;
}
}
}
return false;
}
我是否正確地做了一切,並有任何建議如何做刪除?
:所有的問題都可以通過間接的附加層來解決那麼,你應該記住鏈接到你想要刪除的對象。通過代碼,您可以在檢查之前鬆開您想要更改的鏈接... –
我建議您先寫出紙張上所需的步驟,然後(重新)編碼解決方案。在編碼之後,在調試器中逐行執行代碼,以確保其正常工作。 –