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

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

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

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

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

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

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

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

漢諾塔(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
国产日韩中文字幕| 日韩欧美精品在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 亚洲欧美日韩爽爽影院| 亚洲精品资源美女情侣酒店| 久久伊人精品天天| 韩国日本不卡在线| 日本精品中文字幕| 国产一区二区三区精品久久久| 日韩一区二区福利| 精品在线观看国产| 国内精品小视频| 日韩网站在线观看| 91九色精品视频| 欧美性生活大片免费观看网址| 日韩激情视频在线| 亚州国产精品久久久| 色琪琪综合男人的天堂aⅴ视频| 午夜精品在线观看| 一区二区三区动漫| 全亚洲最色的网站在线观看| 国产在线拍揄自揄视频不卡99| 国产精品日韩精品| 亚洲天堂男人天堂女人天堂| 精品视频久久久久久久| 欧美理论电影网| 78m国产成人精品视频| 亚洲日本成人女熟在线观看| 日韩免费av片在线观看| 日韩一区二区三区在线播放| 91视频国产高清| 久久精品国产久精国产思思| 91高清视频在线免费观看| 黄色一区二区三区| 欧美极品在线视频| 国产午夜精品理论片a级探花| 亚洲高清不卡av| 欧美巨猛xxxx猛交黑人97人| 亚洲国产免费av| 国产亚洲欧美日韩一区二区| 日韩欧美第一页| 国产精品国产三级国产aⅴ9色| 日韩一级裸体免费视频| 91av视频在线观看| 91免费看国产| 国产精品色午夜在线观看| 亚洲精品日产aⅴ| 精品久久久久久久久久国产| 久久高清视频免费| 亚洲国产精品久久久| 国产精品观看在线亚洲人成网| 国产精品成人在线| 日韩中文字幕av| 国产99久久精品一区二区| 91高清视频免费| 日韩免费黄色av| 欧美成人精品一区二区| 亚洲影院色无极综合| 精品国产999| 国产精品高潮呻吟久久av野狼| 91久久久久久久久久| 一区二区国产精品视频| 欧美午夜宅男影院在线观看| 精品久久久久人成| 久久精品视频导航| 8x拔播拔播x8国产精品| 国产精品第二页| 国产精品18久久久久久麻辣| 在线视频日本亚洲性| 日韩国产激情在线| 国内伊人久久久久久网站视频| 91在线免费视频| 久久久999精品| 国产一区二区三区在线看| 国产精品永久在线| 国产精品久久久久久久久久三级| 国产成人久久久| 91av在线视频观看| 日韩二区三区在线| 国产乱人伦真实精品视频| 国产精品视频久久久| 国产精品免费视频久久久| 久久亚洲精品视频| 欧美老女人www| 中文字幕欧美视频在线| 欧美另类第一页| 黑人精品xxx一区一二区| 亚洲免费av电影| 欧美视频在线视频| 亚洲第一区在线| 亚洲精品www久久久久久广东| 亚洲一区二区三区四区视频| 欧美孕妇毛茸茸xxxx| 中文字幕精品国产| 91亚洲精华国产精华| 国产日韩欧美日韩| 欧美裸身视频免费观看| 亚洲一区二区少妇| 日本亚洲欧美三级| 亚洲欧美国产精品久久久久久久| 国产精品一区二区久久国产| 国产亚洲精品一区二区| 亚洲美女性生活视频| 国产精品青草久久久久福利99| 欧美激情欧美狂野欧美精品| 国产精品免费一区豆花| 少妇高潮 亚洲精品| 日韩av免费在线看| 欧美在线不卡区| 亚洲午夜久久久影院| 日韩中文娱乐网| 精品国偷自产在线视频99| 久久国产精品电影| 国产一区二区日韩精品欧美精品| 国产91露脸中文字幕在线| 亚洲老头同性xxxxx| 亚洲一区二区久久久久久久| 热久久免费视频精品| 91精品成人久久| 国产精品久久久久久久久免费看| 亚洲精品视频网上网址在线观看| 狠狠躁夜夜躁久久躁别揉| 自拍偷拍亚洲一区| 亚洲成人黄色网址| 欧美视频在线观看免费| 亚洲黄色免费三级| 日韩一区在线视频| 久久久久久久国产精品视频| 久久福利视频网| 伊人久久精品视频| 欧美精品一区三区| 亚洲精品www久久久久久广东| 亚洲国产小视频在线观看| 清纯唯美日韩制服另类| 欧美激情欧美激情| 成人黄色午夜影院| 7777kkkk成人观看| 国产精品极品美女粉嫩高清在线| 欧美精品激情在线| 高清一区二区三区四区五区| 国产成人精品a视频一区www| 国产91精品视频在线观看| 国产精品久久久久99| 欧美精品亚州精品| 久热精品视频在线观看| 91精品国产高清久久久久久| 青草热久免费精品视频| 国产欧美一区二区三区四区| 欧美一级大片视频| 精品色蜜蜜精品视频在线观看| 97视频国产在线| 精品性高朝久久久久久久| 超碰精品一区二区三区乱码| 精品中文字幕在线观看| 欧美成人在线免费视频| 97婷婷大伊香蕉精品视频| 色婷婷av一区二区三区在线观看| 成人久久久久爱| 国产精品日韩欧美大师| 国产精品揄拍一区二区| 91成人在线观看国产| 国产精品视频地址| 欧美久久精品午夜青青大伊人| 国产午夜精品理论片a级探花|