對於遞迴函式,必須有乙個控制遞迴的引數,在引數滿足某個特定條件的情況下,遞迴停止。對於私有的遞迴函式。
對於使用者來說,他不需要知道這個引數,只要傳入初始值就可以,對應於公有的包裹函式
舉例:在求二叉樹的高度的時候,使用者只要傳入二叉樹的根節點。然而,在遞迴的時候,引數是每個子樹的根節點,當根節點為空,遞迴結束。
public
:int
height()
const
private
:int
height
(node *t)
const
//注意:1.這裡的最外面的乙個()必須加上,?的優先順序低於+,會報錯。2.學習這樣的表達
}
int height(node t) 私有的nodet是使用者不用自己輸入的,設計為私有函式,使用者只需要輸入開始的根結點就行 包裹函式(wrapper function)
包裹函式其實就是封裝函式,呼叫乙個函式來實現這個功能。例子如下 int socket int family,int type,int protocol return sockfd 用socket函式封裝socket函式,即 socket函式 socket函式 出錯檢查 通過將呼叫的函式以及它的出錯資...
TCP伺服器listen函式的包裹函式
include int listen int sockfd,int backlog 成功返回0,失敗返回 1當tcp伺服器呼叫listen函式時,它做兩件事 把伺服器套接字從closed狀態轉換到listen狀態。backlog引數規定了核心中未完成連線套接字的最大值即套接字排隊的最大連線數。歷史上...
遞迴的函式
problem description 給定乙個函式 f a,b,c 如果 a 0 或 b 0 或 c 0 返回值為 1 如果 a 20 或 b 20 或 c 20 返回值為 f 20,20,20 如果 a b 並且 b c 返回 f a,b,c 1 f a,b 1,c 1 f a,b 1,c 其它...