看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 169.231.26.22 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1407708821.A.0B2.html ※ 編輯: solinari (169.231.26.22), 08/11/2014 06:27:47
idleidle: 作業?迴圈應該是比較好的方式。 08/11 07:38
solinari: 是作業.要寫迴圈跟遞迴兩種,可是我遞迴部分一直搞不清楚 08/11 07:52
solinari: 之前有寫過比較簡單的遞迴, 可是這個不知該從何下手.. 08/11 07:56
※ 編輯: solinari (169.231.26.22), 08/11/2014 09:48:05
Feis: 遞迴關係: 走一步, n 減一. 邊界條件: n == 1 時插入在後 08/11 13:48
Feis: n == 0 時看你 linked list 是怎麼實作的 08/11 13:48