Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > C/C++ > 数据结构笔记:递归的魅力——hanio
【标  题】:数据结构笔记:递归的魅力——hanio
【关键字】:hanio
【来  源】:http://www.cppblog.com/ngaut/archive/2005/12/24/2042.html

数据结构笔记:递归的魅力——hanio

Your Ad Here C++鍗氬 - ngaut - 鏁版嵁缁撴瀯绗旇锛氶掑綊鐨勯瓍鍔涒斺攈anio

ngaut

asm/c/c++/......

缁熻

  • 闅忕瑪 - 8
  • 鏂囩珷 - 0
  • 璇勮 - 7
  • 寮曠敤 - 0

鏈鏂拌瘎璁?

鏁版嵁缁撴瀯绗旇锛氶掑綊鐨勯瓍鍔涒斺攈anio

杩欎釜渚嬪瓙鍐欑殑澶浜嗭紝鍒板閮芥槸锛屼笉杩囦綔涓鸿嚜宸辩殑绗旇杩樻槸璐村嚭鏉ワ紝濡傛灉澶у鐨勬暟鎹粨鏋勬暀鏉愪笂鐨勪唬鐮佽皟璇曚笉閫氱殑璇濓紝杩欎釜浠g爜杩樻槸鏈夌偣浣滅敤鐨刕_^, 鍙﹀涓汉瑙夊緱杩欎釜渚嬪瓙涔熺‘瀹炴槸閫掑綊鐨勭粡鍏哥敤閫?IMG height=19 src="/Emoticons/regular_smile.gif" width=19 border=0>锛屼笅闈㈢殑浠g爜鍙傝冧簡<<c绋嬪簭璁捐鐨勬娊璞℃濈淮>>

/********************************************************************
    created:    2005/12/24
    created:    24:12:2005   10:42
    filename:     hanoi.c
    author:        Liu Qi
    
    purpose:    hanoi problem
********************************************************************
*/



#include 
<stdio.h>
#include 
<assert.h>



#define COUNT 3



/*===========================================================================
* Function name:    MoveSingleDisk
* Parameter:        start:浠巗tart鏌卞瓙寮濮嬶紝绉诲姩鍒癴inish鏌卞瓙
* Precondition:        void
* Description:        濡傛灉鍙湁涓涓洏瀛愶紝鐩存帴浠庡紑濮嬪緱閭f牴鏌卞瓙绉诲姩鍒扮粨鏉熷緱鏌卞瓙灏卞彲浠ヤ簡
* Return value:        void
* Author:            Liu Qi,  [12/24/2005]
===========================================================================
*/

void MoveSingleDisk(char start, char finish)
{
    printf(
"%c -> %c\n", start, finish);
}




/*===========================================================================
* Function name:    MoveTower
* Parameter:        count:number of disks, start:寮濮嬬殑閭f牴鏌卞瓙
* Precondition:        count > 0
* Description:        灏哻ount涓猟isk浠巗tart绉诲姩鍒癴inish锛屽熷姪temp
* Return value:        void
* Author:            Liu Qi,  [12/24/2005]
===========================================================================
*/

void MoveTower(int count, char start, char finish, char temp)
{
    assert( count 
> 0 ); 

    
if (count == 1)
    
{
        MoveSingleDisk(start, finish);
    }

    
else
    
{
        MoveTower(count 
- 1, start, temp, finish);
        MoveSingleDisk(start, finish);
        MoveTower(count 
- 1, temp, finish, start);
    }

}



int main(int argc, char *argv[])
{
    MoveTower(COUNT, 
'A''B''C');

        return 0;
}


杩愯缁撴灉濡備笅锛?BR>
hanio.bmp

posted on 2005-12-24 11:02 ngaut 闃呰(7) 璇勮(0)  缂栬緫 鏀惰棌 鏀惰棌鑷?65Key 鎵灞炲垎绫? c/c++/ds

【相关评论】
没有相关评论
【发表评论】
姓名:
邮件:
随机码*
评论*
      
|  首 页  |  版权声明  |  联系我们   |  网站地图  |
CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.