我被要求編寫一個驅動函數來調用遞歸函數。我想知道我需要在驅動程序功能中做什麼。使用遞歸來反轉鏈表的問題
這個程序是反轉一個鏈表。只要
void invert_r()
{
//This is the driver function for recursive_invert
nodeType<Type> *p, *q;
q = first;
p = first;
recursive_invert(q, p);
}
nodeType<Type>* recursive_invert(nodeType<Type> *q, nodeType<Type> *p)
{
//Invert a linked list using recursion.
//DO NOT create any new node in your implementation
if(p -> link == NULL)
{
q -> link = p;
return p;
}
else
{
recursive_invert(p -> link, q) -> link = p;
}
return p;
}
很難說,我們不能看到first'是什麼'。否則一切看起來很好。你用這個代碼得到了什麼具體問題? –
@ g-makulik「first」是鏈表的第一個元素。我很困惑使用驅動函數,以及如何使用它,然後調用我的遞歸函數... –
該函數的輸出是首先通過迭代方法顛倒鏈表。然後通過實現invert_r()來返回鏈表來調用遞歸函數 –