#include <iostream.h> int gbsx( char & L, char & R ) //改变顺序的函数 { char T ; T= L ; L= R ; R= T ; return0 ; } void move( int n , char a , char b , char c ...
分类:
编程语言 时间:
2016-10-11 20:55:45
阅读次数:
235
/*
*为了将num个盘子从char移动到to,需要先将第num个盘子上面的num-1个盘子移动到temp上,
*然后将第num个盘子移动到to上,最后将第N-1个盘子从temp移动到to上。这样通过递归
*就可以实现汉诺塔问题的求解。
*/
publicstaticvoidHanuoTower(intnum,charfrom,chartemp,charto){..
分类:
其他好文 时间:
2016-10-11 00:12:41
阅读次数:
203
参考链接 汉诺塔问题描述 汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一 ...
分类:
其他好文 时间:
2016-10-02 10:47:32
阅读次数:
135
当然、这是一个经典的递归问题~ 想必来看这篇博文的同学对汉诺塔应该不会陌生了吧, 写这篇博还是有初衷的: 之前学数据结构的时候自己看书、也上网上查了很多资料,资料都比较散、而且描述的不是很清楚,对于当时刚刚 接触算法的我,要完全理解还是有一定难度。今天刚好有时间就整理了下思路、重写分析了一下之前的疑 ...
分类:
其他好文 时间:
2016-09-28 02:06:38
阅读次数:
89
1. A->C->B; 2.B->A-C; ...
分类:
其他好文 时间:
2016-09-19 22:05:31
阅读次数:
158
修改一下汉诺塔的游戏规则,现在不能直接从左边走到右边,也不能直接右边走到左边。 方法一:递归实现 现在分析一下,比如左边有1~n,那么移动最后一个的情况,就是: 1.1-n-1从左边移动到右边 2.n从左边移动到中间 3.1-n-1从右边移动到左边 4.n从中间移动到右边 5.1-n-1从左边移动到 ...
分类:
其他好文 时间:
2016-09-17 16:27:37
阅读次数:
126
作为一个编程初学者,写下这些东西主要是为了加深自己的理解,当然如果能对各位有所帮助,是本人的荣幸。如有错误之处敬请指出。 问题描述: 有一个梵塔,塔内有三个座A、B、C,A座上有诺干个盘子,盘子大小不等,大的在下,小的在上(如图)。 把这些个盘子从A座移到C座,中间可以借用B座但每次只能允许移动一个 ...
分类:
其他好文 时间:
2016-09-03 22:30:32
阅读次数:
180
汉诺塔比较经典的实现是利用递归,但也可以利用堆栈。 题意理解:有A,B,C三个柱子,将A柱子上的N个盘子(从大到小排列)移到C柱子上,每次只允许移动一个盘子,并且保证每个柱子上的盘子的排列都是从大到小。 1、递归实现 假设只有一个盘子,那么只需实现 A->C 这个动作; 如果有两个盘子,那么需要 ( ...
分类:
其他好文 时间:
2016-08-25 14:29:59
阅读次数:
186
using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace MyExample_Hanoi_{ class Program { static void Main(string ...