亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++基于遞歸算法解決漢諾塔問題與樹的遍歷功能示例

2020-05-23 13:39:52
字體:
來源:轉載
供稿:網友

本文實例講述了C++基于遞歸算法解決漢諾塔問題與樹的遍歷功能。分享給大家供大家參考,具體如下:

遞歸是把問題轉化為規??s小的同類問題,然后迭代調用函數(或過程)求得問題的解。遞歸函數就是直接或間接調用自身的函數

遞歸兩要素:遞歸關系遞歸邊界(終止條件),遞歸關系確定了迭代的層次結構,需要深入了解并分解問題;終止條件保證了程序的有窮性。

遞歸的應用有很多,常見的包括:階乘運算、斐波那契數列、漢諾塔、數的遍歷,還有大名鼎鼎的快排等等。理論上,遞歸問題都可以由多層循環來實現。遞歸的每次調用都會消耗一定的??臻g,效率要稍低于循環實現,但遞歸使函數更加簡潔,極大地增加了程序的可讀性。這里介紹漢諾塔和樹的遍歷兩種應用。

漢諾塔(hanoi)

有三根相鄰的柱子,標號為A,B,C,A柱子上從下到上按金字塔狀疊放著n個不同大小的圓盤,要把所有盤子一個一個移動到柱子C上,并且每次移動同一根柱子上都不能出現大盤子在小盤子上方。

C++,遞歸算法,漢諾塔問題,樹的遍歷

遞歸規則:先把a上的n-1個搬到b上,再把a上第n個搬到c,然后把b上的n-1個搬到c上;終止條件是n=0。

/* *作者:侯凱 *說明:目標:把n個盤子從a往c搬 */void hanoi(int n, char a,char b,char c){  if(n>0)  {    hanoi(n-1,a,c,b);    cout<<a<<"->"<<c<<endl;    hanoi(n-1,b,a,c);  }}void main(){  hanoi(4,'A','B','C');}

這樣程序便十分簡潔的實現了看似復雜的功能,下面再看一個經典的問題:

遍歷二叉樹

二叉樹的遍歷是指從根節點出發,按照某種次序依次訪問二叉樹中的所有結點,使得每個結點被訪問一次且僅被訪問一次。遍歷方法有四種:前序遍歷(先訪問根節點,然后前序遍歷左子樹,最后前序遍歷右子樹)、中序遍歷(左子樹->根節點->右子樹)、后序遍歷(左子樹->右子樹->根節點)和層序遍歷(每一層自左向右,各層自上向下訪問)。

可見前三種遍歷方法的定義就體現了遞歸的思想,算法實現如下:

//前序遍歷void PreorderTra(BiTree T){  if(T == NULL)  {    return;  }  printf("%c",T->data);//輸出結點數據,可更改為其他對結點的操作  PreorderTra(T->lchild);//前序遍歷左子樹  PreorderTra(T->rchild);//前序遍歷右子樹}//中序遍歷void InorderTra(BiTree T){  if(T == NULL)  {    return;  }  InorderTra(T->lchild);//中序遍歷左子樹  printf("%c",T->data);//輸出結點數據,可更改為其他對結點的操作  InorderTra(T->rchild);//中序遍歷右子樹}//后序遍歷void PostorderTra(BiTree T){  if(T == NULL)  {    return;  }  PostorderTra(T->lchild);//后序遍歷左子樹  PostorderTra(T->rchild);//后序遍歷右子樹  printf("%c",T->data);//輸出結點數據,可更改為其他對結點的操作}

其中二叉樹的結構如下:

typedef struct BiTNode{  ElemType data;  struct BiTNode *lchild,*rchild;}BitNode,*BiTree;

希望本文所述對大家C++程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧洲在线播放| 伊人青青综合网站| 国产精品高精视频免费| 亚洲老头同性xxxxx| 精品国产精品三级精品av网址| 欧美精品videosex极品1| 国产欧美在线观看| 精品中文字幕久久久久久| 久久亚洲精品国产亚洲老地址| 亚洲性av在线| 日韩暖暖在线视频| 日本成人免费在线| 97碰碰碰免费色视频| 夜夜嗨av色一区二区不卡| 国产精品欧美一区二区三区奶水| 欧美日韩国产一区二区| 亚洲精品成人免费| 91久热免费在线视频| 日韩免费视频在线观看| 国产精品大陆在线观看| 日韩av在线影视| 欧美韩日一区二区| 97国产精品免费视频| 日韩精品免费综合视频在线播放| 国产经典一区二区| 日韩电影网在线| 欧美美最猛性xxxxxx| 精品成人乱色一区二区| 精品一区二区亚洲| 国产精品美女视频网站| 久久久精品久久久| 91在线视频导航| 国产日韩欧美电影在线观看| 欧美一二三视频| 国产精品国产三级国产aⅴ浪潮| 欧美黄色免费网站| 久久久亚洲精选| 在线亚洲欧美视频| 国产精品一区二区三区在线播放| 欧美黑人极品猛少妇色xxxxx| 亚洲加勒比久久88色综合| 欧美日韩在线观看视频小说| 最新中文字幕亚洲| 欧美在线xxx| 国产伊人精品在线| 国产精品自产拍在线观| 国产视频999| 国产日产欧美精品| 欧美国产日韩中文字幕在线| 欧美大全免费观看电视剧大泉洋| 日韩在线国产精品| 欧美成人中文字幕在线| 91精品美女在线| 久久国产精品偷| 亚洲成色999久久网站| 亚洲天堂视频在线观看| 一区二区三区国产在线观看| 日韩av免费网站| 亚洲成人精品视频| 亚洲激情成人网| 精品久久久久久久大神国产| 欧美在线欧美在线| 久久人91精品久久久久久不卡| 日本aⅴ大伊香蕉精品视频| 国产日韩换脸av一区在线观看| 91精品国产综合久久香蕉922| 国产精品视频网| 97在线视频免费播放| 色av吧综合网| 亚洲激情自拍图| 超碰精品一区二区三区乱码| 国产成人91久久精品| 日韩高清av在线| 97av视频在线| 韩国精品久久久999| 亚洲影院在线看| 国产精品91免费在线| 久久久91精品国产| 亚洲一区二区自拍| 欧美日韩一区免费| 亚洲综合中文字幕在线观看| 欧美午夜美女看片| 日本精品免费一区二区三区| 亚洲欧美另类自拍| 日韩在线免费视频| 少妇高潮久久久久久潘金莲| 日日骚久久av| 国产精品美女999| 日韩中文理论片| 欧美性猛交xxxx乱大交极品| 成人在线观看视频网站| 97精品一区二区三区| 九九热视频这里只有精品| 色妞欧美日韩在线| 国产日韩欧美在线播放| 日韩经典第一页| 国产成人精品一区二区三区| 欧美理论在线观看| 日韩精品中文字幕久久臀| 亚洲日韩中文字幕在线播放| 亚洲国产日韩一区| 欧美国产日韩一区二区在线观看| 欧美日韩国产页| 久久久精品视频成人| 日韩美女主播视频| 这里只有精品久久| 视频在线一区二区| 亚洲人av在线影院| 色综合久久天天综线观看| 亚洲黄色在线观看| 中文字幕国产亚洲2019| 色综合天天狠天天透天天伊人| 97国产真实伦对白精彩视频8| 国产成人高潮免费观看精品| 国产成人高潮免费观看精品| 欧美激情视频在线免费观看 欧美视频免费一| 欧美另类老女人| 蜜月aⅴ免费一区二区三区| 日本在线精品视频| 国产一区二中文字幕在线看| 国产成人av网| 国产精品久久久久久久9999| 午夜精品久久久久久久男人的天堂| 亚洲理论在线a中文字幕| 日韩精品在线私人| 日韩av在线影院| 91九色蝌蚪国产| 国产丝袜一区视频在线观看| 尤物九九久久国产精品的特点| 亚洲欧美日韩国产中文专区| 91av在线精品| wwwwwwww亚洲| 91久久国产精品91久久性色| 国产激情久久久| 日韩精品在线免费播放| 欧美成年人视频网站| 欧美精品videosex性欧美| 88xx成人精品| 日韩欧美亚洲国产一区| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲视频欧洲视频| 国产精品96久久久久久| 欧美日本中文字幕| 精品久久久久久久中文字幕| 91亚洲精品久久久| 91亚洲国产成人久久精品网站| 国产视频亚洲视频| 久久99视频精品| 中文字幕久精品免费视频| 亚洲美女av电影| 欧美精品九九久久| 91精品在线观看视频| 亚洲欧美精品suv| 国产精品国产福利国产秒拍| 欧美成人久久久| 国产精品永久免费| 欧美中文在线免费| 色哟哟网站入口亚洲精品| 亚洲一区二区久久| 亚洲女人天堂色在线7777| 久久久久这里只有精品| 一区二区在线视频播放| 91在线观看免费高清| 国产国语videosex另类|