- 9
- 0
- 约1.56万字
- 约 93页
- 2017-07-02 发布于湖北
- 举报
清华大学程序设计课件-------第4章
汉诺塔演示 问题分析 待解决的问题 Q1:是否存在某种简单情形,问题很容易解决 Q2:是否可将原始问题分解成性质相同但规模较小的子问题,且新问题的解答对原始问题有关键意义 解答方案 A1:只有一个圆盘时是最简单情形 A2:对于 n 1,考虑 n – 1 个圆盘,如果能将 n - 1 个圆盘移动到某个塔座上,则可以移动第 n 个圆盘 策略:首先将 n – 1 个圆盘移动到塔座 Y 上,然后将第 n 个圆盘移动到 Z 上,最后再将 n - 1 个圆盘从 Y 上移动到 Z 上 递 归 Hanoi 塔问题的递归思想 伪代码 void MoveHanoi(unsigned int n, HANOI from, HANOI tmp, HANOI to) { if( n == 1 ) 将一个圆盘从 from 移动到 to else { 将 n – 1 个圆盘从 from 以 to 为中转移动到 tmp 将圆盘 n 从 from 移动到 to 将 n - 1个圆盘从 tmp 以 from 为中转移动到 to } } from tmp to n-1 程序代码 #include stdio.h #include “zylib.h” /* 枚举类型 HANOI,其文字分别表示三个圆柱的代号 */ typedef enum {X, Y, Z} HANOI; void PrintWelcomeInfo(); unsigned int GetInteger( STRING prompt ); void MoveHanoi( unsigned int n, HANOI from, HANOI tmp, HANOI to ); STRING ConvertHanoiToString( HANOI x ); void MovePlate( unsigned int n, HANOI from, HANOI to ); int main() { unsigned int n; PrintWelcomeInfo(); n = GetInteger( Input number of plates: ); MoveHanoi( n, X, Y, Z ); return 0; } void PrintWelcomeInfo() { printf( The program shows the moving process of Hanoi Tower.\n ); } unsigned int GetInteger( STRING prompt ) { unsigned int t; printf( prompt ); t = GetIntegerFromKeyboard(); return t; } STRING ConvertHanoiToString( HANOI x ) { switch( x ) { case X: return X; case Y: return Y; case Z: return Z; default: return Error; } } void MovePlate( unsigned int n, HANOI from, HANOI to ) { STRING from_str, to_str; from_str = ConvertHanoiToString( from ); to_str = ConvertHanoiToString( to ); printf( %d: %s -- %s\n, n, from_str, to_str ); } void MoveHanoi(unsigned int n,HANOI from,HANOI tmp,HANOI to) { if( n == 1 ) MovePlate( n, from, to ); else{ MoveHanoi( n - 1, from, to, tmp ); MovePlate( n, from, to ); MoveHanoi( n - 1, tmp, from, to ); } } n的含义? n的含义? #include stdio.h int step=0; void move( char, char ); void MoveHanoiTower( int, char, char, char ); int main() { int n; printf(please input n=); scanf(%d, n); MoveHa
您可能关注的文档
- 淡水对虾池塘养殖(美国篇).doc
- 淡淡忧伤的个性网名:我心里已经有了你.ppt
- 淡化语法知识讲解强化语法语境体验.doc
- 淮阴侯列传 - 副本.ppt
- 淮阴校长班校本课程交流.ppt
- 深圳七年级英语上unit2教案.doc
- 深圳初中英语教材语法点分布.doc
- 深圳大学教育学试卷及答案.doc
- 深圳市交通拥堵问题的研究.docx
- 深圳新版八下英语unit1helping people in need(天天向上).doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 时速160公里动力集中动车组动力车(177页).pptx VIP
- 全国李氏家族字辈.pdf VIP
- 2025储能场站运营的价值定位、运营模式和收益示例-202508v3.pdf VIP
- 小学科学《斜面》优质课件.docx VIP
- 串联型感应加热电源的自动负载匹配技术.pdf VIP
- 2025年新课标《义务教育数学课程标准(2022年版)》测试题及答案.docx VIP
- 老年人谵妄中西医结合诊疗专家共识.pdf VIP
- 膨胀土基坑复合土钉墙试验研究.pdf VIP
- 2021年江苏省无锡市天一高级中学高二物理下学期期末试卷含解析.docx VIP
- 《贵州省公路工程施工监理电子招标文件示范文本(试行)》2025.docx VIP
原创力文档

文档评论(0)