我正在遞歸地向列表中添加一個元素,編寫一個插入函數。問題是當我運行程序並嘗試插入時,它只是插入一次,然後在第二次中斷時並有一個錯誤。 任何建議,感謝名單鏈接列表插入函數遞歸C++
輔助函數:
void List::insertHelper(Node* list, int number)
{
if(list->next != NULL)
{
insertHelper(list->next, number);
}
else
{
list->next = new Node;
list->next->data = number;
}
}
此功能時,我所說的遞歸一個:
void List::insert(int d)
{
if(head == NULL)
{
head = new Node;
head->data = d;
}
else
{
insertHelper(head, d);
}
}
有什麼*編譯*?在這段代碼中沒有'Insert'函數,但是它從List :: insert中調用,也沒有叫Node的類/結構,也沒有叫做'head'的全局變量。請發佈* real *代碼。 – WhozCraig
插入函數是insertHelper。 thx – Mido
我的心理調試器告訴我'Node'的構造函數永遠不會將'Node :: next'設置爲NULL,而且這段代碼的其餘部分也不會。你的'Node :: Node()'構造函數應該接受一個數據元素並且初始化'data'成員和'next',比如Node :: Node(int data):data(data),next(NULL) {}' – WhozCraig