早先編過一個左旋的,改一下給你了——
創(chuàng)新互聯(lián)公司長期為上千客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為師宗企業(yè)提供專業(yè)的網(wǎng)站設(shè)計、成都做網(wǎng)站,師宗網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
代碼文本:
#include "stdio.h"
int fun(int x, int y, int lt, int n){
if(!x)
return lt+y;
else if(!y)
return lt+4*(n-1)-x;
else if(y==n-1)
return lt+n+x-1;
else if(x==n-1)
return lt+3*(n-1)-y;
else
return fun(x-1,y-1,lt+4*(n-1),n-2);
}
int main(int argc,char *argv[]){
int n, i, j;
printf("Please enter n(int 0n10)...\nn=");
if(scanf("%d", n)==1 n0 n10){
for(i=0;in;i++){
for(j=0;jn;++j)
printf("%2d ", fun(i,j,1,n));
putchar('\n');
}
}
else
printf("Input error, exit...\n");
return 0;
}
嗯,你可能理解錯了,不是最終最終執(zhí)行08條,而是在任何一次的遞歸調(diào)用結(jié)束之后都有可能從這個地方返回。我來講解一下吧,如果這棵樹非空,而且存在左子樹,那么的確會在第5行一直走到最左下的葉子,在到達最左下的葉子之后的那一次遞歸(此時root-lchild==null,調(diào)用heightbt(root-lchild)),root==null,那么返回0,此時遞歸返回一層,也就是返回到最左下的葉子處,此時LH=0,繼續(xù)執(zhí)行heightbt(root-rchild),那么類似剛才的過程繼續(xù)檢查右子樹。其實遞歸的話沒有必要去追究每一步都是怎么執(zhí)行的,而是要從整體上去把握他的思想。寫遞歸的時候也是這樣,不太可能去細究每一步應(yīng)該怎么實現(xiàn),而要認為只要條件設(shè)置正確,那么一定會正確的實現(xiàn)遞歸。另外,樓主要注意一下編程風(fēng)格。
#include?"stdio.h"
void?intrev(int?n){
if(n){
printf("%d",n%10);
intrev(n/10);
}
}
int?main(int?argc,char?*argv[]){
int?x;
printf("Please?enter?a?positive?integer...\n");
if(scanf("%d",x)!=1?||?x1){
printf("Input?error,?exit...\n");
return?0;
}
intrev(x);
printf("\n");
return?0;
}
運行樣例:
就是一個棧的效果,先進后出
如輸入abc\n
首先進入第一層reverse:c='a', c!='\n'
----進入第二層reverse:c='b', c!='\n'
--------進入第三層reverse:c='c', c!='\n'
------------進入第四層reverse:c='\n',
------------結(jié)束第四層reverse,回到第三層
--------c!='\n',輸出c,結(jié)束第三層reverse,回到第二層
----c!='\n',輸出b,結(jié)束第二層reverse,回到第一層
c!='\n',輸出a,結(jié)束第一層reverse,程序結(jié)束
網(wǎng)站標(biāo)題:C語言遞歸函數(shù)實現(xiàn)翻轉(zhuǎn) c語言遞歸函數(shù)實現(xiàn)翻轉(zhuǎn)怎么寫
文章路徑:http://chinadenli.net/article2/dogsgoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網(wǎng)站設(shè)計公司、定制開發(fā)、ChatGPT、搜索引擎優(yōu)化、網(wǎng)站設(shè)計
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)