作者solinari (soli)
看板C_and_CPP
標題Re: [問題] linked list 迴圈改遞迴
時間Tue Aug 12 05:36:55 2014
我目前已經寫出來了
但addNthRec(int n, int v)跟removeNthRec(int n)裡
剛開始那個計算 linked list 的長度還是有用到迴圈
有沒有辦法把那改成 recursive 的形式寫在同個function裡呢?
還是有什麼不需要用到迴圈的方法?
※ 引述《solinari (soli)》之銘言:
: 開發平台(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.1407793017.A.181.html
※ 編輯: solinari (169.231.26.22), 08/12/2014 05:45:24
※ 編輯: solinari (169.231.26.22), 08/13/2014 02:14:22
→ lNishan: Linked List的Size 應該要設一個變數去維護 08/13 13:38
→ lNishan: 初始等於0,insert的時候+1,remove的時候-1 08/13 13:39