作者solinari (soli)
看板C_and_CPP
標題[問題] linked list 的 recursive
時間Mon Aug 11 06:13:38 2014
開發平台(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