我無法使該程序將節點附加到鏈接列表的末尾。我知道它必須對「addBack」函數做些什麼,因爲「addFront」函數完美地工作。我認爲這應該是足夠的,但是如果需要更多的代碼,只要問,你就會收到。將節點添加到鏈接列表的末尾 - C++
template <typename E>
void SLinkedList<E>::addBack(const E& e)
{
E *temp = head;
while (temp -> next != NULL)
temp = temp -> next;
SNode<E> * v = new SNode<E>;
temp -> next = v;
v -> elem = e;
v -> next = NULL;
}
你必須改變'E * TEMP = head'到'SNode * TEMP = head',因爲'temp'是一個節點的指針,你走到最後。編譯器一定是警告過你的。有沒有消息? –
Notinlist
2014-09-11 07:23:04
這看起來不正確。 'E'是元素類型,而不是管理節點類型。你如何期望'E * temp = head;'甚至可以編譯,少得多的工作(假設'head'是一個'SNode *'即使修復了,這仍然不起作用,因爲它不會更新頭指針放在* initial *插入位置(第一個插入位) –
WhozCraig
2014-09-11 07:24:05
另外,我建議你在'head'旁邊保留'last'指針,所以訪問結束可以更快。 – Notinlist 2014-09-11 07:24:12