欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++ 實現漢諾塔的實例詳解

 更新時間:2017年08月21日 10:10:19   投稿:lqh  
這篇文章主要介紹了C++ 實現漢諾塔的實例詳解的相關資料,這里主要說明C++中數據結構的遞歸的應用,需要的朋友可以參考下

C++ 實現漢諾塔的實例詳解

前言:

有A,B,C三塔,N個盤(從小到大編號為1-N)起初都在A塔,現要將N個盤全部移動到C塔(按照河內塔規(guī)則),求最少移動次數以及每次的移動詳細情況。

要求:

需要采用遞歸方法和消除尾遞歸兩種方法編寫。

盤數N由用戶從標準輸入讀入,以一個整數表示,然后請調用兩個方法按照下面例子所述分別在屏幕中輸出結果(正常情況下一個輸入數據會顯示同樣的輸出結果2次)。

實現代碼:

#include<iostream>
using namespace std;
void move(int count,char start='a',char finish='b',char temp='c')
{
 if(count>0)
 {
  move(count-1,start,temp,finish);
 cout<<"Move "<<count<<" from "<<start<<" to "<<finish<<endl;
 move(count-1,temp,finish,start);
 }
}
void move_without_recursion(int count,char start='a',char finish='b',char temp='c')
{
 char swap;
 while(count>0)
 {
  move_without_recursion(count-1,start,temp,finish);
 cout<<"Move "<<count<<" from "<<start<<" to "<<finish<<endl;
 count--;
 swap=start;
 start=temp;
 temp=swap;
 }
}
int main()
{
 int count;
 cout<<"please enter the number:";
 cin>>count;
 cout<<"遞歸方法運行過程:"<<endl;
  move(count);
  cout<<"消除尾遞歸方法運行過程:"<<endl;
  move_without_recursion(count);
return 0;
}


如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關文章

  • C++設計模式之Static Factory模式詳解

    C++設計模式之Static Factory模式詳解

    這篇文章主要為大家詳細介紹了C++設計模式之Static Factory模式的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • c++自定義sort()函數的排序方法介紹

    c++自定義sort()函數的排序方法介紹

    這篇文章主要介紹了c++自定義sort()函數的排序方法介紹,文章通過圍繞主題展開詳細的內容戒殺,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • C語言如何實現成績等級判別

    C語言如何實現成績等級判別

    這篇文章主要介紹了C語言如何實現成績等級判別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語言實現圖書管理系統(tǒng)

    C語言實現圖書管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言實現圖書管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C++ 二叉搜索樹(BST)的實現方法

    C++ 二叉搜索樹(BST)的實現方法

    這篇文章主要介紹了C++ 二叉搜索樹(BST)的實現方法,非常不錯,具有參考借鑒價值,需要的的朋友參考下
    2017-04-04
  • 基于QT實現顯示OpenCV讀取的圖片

    基于QT實現顯示OpenCV讀取的圖片

    OpenCV自帶了一部分常用的GUI功能,但是更多的圖像處理功能需要其他GUI框架來輔助實現,本文將通過QT來顯示OpenCV讀取的圖片,需要的可以參考一下
    2022-11-11
  • C++插入排序算法實例

    C++插入排序算法實例

    這篇文章主要介紹了C++插入排序算法實例,本文先是講解了什么插入排序,然后給出了C++代碼實例,需要的朋友可以參考下
    2014-10-10
  • 一文詳解C++子類函數為什么不能重載父類函數

    一文詳解C++子類函數為什么不能重載父類函數

    這篇文章主要介紹了一文詳解C++子類函數為什么不能重載父類函數,文章圍繞主題展開詳細的內容戒殺,具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09
  • C++中聲明類的class與聲明結構體的struct關鍵字詳解

    C++中聲明類的class與聲明結構體的struct關鍵字詳解

    這篇文章主要介紹了C++中聲明類的class與聲明結構體的struct關鍵字,默認情況下結構的所有成員均是公有的,而類的所有成員是私有的,需要的朋友可以參考下
    2016-01-01
  • C語言之實現輾轉相除法的兩種方式

    C語言之實現輾轉相除法的兩種方式

    這篇文章主要介紹了C語言之實現輾轉相除法的兩種方式,具有很好的參考價值,希望對大家有所幫助,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論