Re: [問題] 自己呼叫自己? 麻煩給個指點

看板C_and_CPP (C/C++)作者 (釣到一隻猴子@_@)時間12年前 (2013/11/07 01:11), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《kaoh08 (AIR -the 1000th summer-)》之銘言: : 問題(Question):程式看不懂,請告訴我這是什麼,我就能翻書找。 : 預期的正確結果(Expected Output):二元樹程式 : 程式碼(Code):(請善用置底文網頁, 記得排版) : 例如這個binTree.h 第321行,private版的inorder, : template <class T> : void binTree<T>::inorder(binTreeNode<T>* child, void (* ptr)(T&)) : { : if(child != NULL) : { : inorder(child->left, ptr); //自己呼叫自己? 這東西叫遞迴... 對這種往內呼叫不確定層數的東西很常用 像列出檔案樹 : ptr(child->data); //到底執行了什麼? 很明顯的... ptr是一個參數啊 到底做了啥要問呼叫的人 反正外面傳個function給參數進來 這邊就呼叫那個參數 像主程式28行 second.inorder ( decrease ); 這邊就呼叫了只有void*的inorder 內部呼叫了這個node, void*的inorder 再往內就又對每個枝都呼叫一次 一直到全部枝幹都被呼叫過 整體結果就是整個Tree內所有node內的data都被decrease : inorder(child->right, ptr); : } : } : prog6.cc http://pastebin.com/9aaxggWC 主程式 : prog6.h http://pastebin.com/t0ZXTvBx : binTree.h http://pastebin.com/QCYqJYi4 二元樹的implementation : binTreeNode.h http://pastebin.com/9wVGDWAC 二元樹node的class : 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.216.102

11/07 06:53, , 1F
我好像懂了 謝謝!
11/07 06:53, 1F
文章代碼(AID): #1IUdX285 (C_and_CPP)
文章代碼(AID): #1IUdX285 (C_and_CPP)