[問題] linked list 迴圈改遞迴

作者: solinari (soli)   2014-08-11 06:13:38
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
問題(Question):
我想把 void addNth(int n, int v) 和 int removeNth(int n) 這兩個函式
寫成 recursive 的形式在:
void addNthRec(int n, int v);
int removeNthRec(int n);
使用 private 的 helper function:
void addNthRec(Node *, int n, int v);
int removeNthRec(Node *, int n);
這兩個函式的功能是根據給定的index, 增加或刪除linkedlist的node.
我已經寫好使用迴圈的版本, 可是不曉得該如何改成遞迴的版本
我才學一陣子而已, 有板友能幫忙解釋該如何改嗎?
我覺得遞迴有點難懂...
先謝謝大家
程式碼(Code):(請善用置底文網頁, 記得排版)
Node.h http://codepad.org/fWDz98gm
LinkedList.h http://codepad.org/HiWl4oKx
LinkedList.cpp http://codepad.org/GeKYvypv
作者: idleidle (格物致知 溫故知新)   2014-08-11 07:38:00
作業?迴圈應該是比較好的方式。
作者: solinari (soli)   2014-08-11 07:52:00
是作業.要寫迴圈跟遞迴兩種,可是我遞迴部分一直搞不清楚之前有寫過比較簡單的遞迴, 可是這個不知該從何下手..
作者: Feis (永遠睡不著 @@)   2014-08-11 13:48:00
遞迴關係: 走一步, n 減一. 邊界條件: n == 1 時插入在後n == 0 時看你 linked list 是怎麼實作的

Links booklink

Contact Us: admin [ a t ] ucptt.com