欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

汉诺塔问题

程序员文章站 2022-07-15 18:28:44
...

汉诺塔问题

#include<iostream>
using namespace std;

void move(int n, char moveFrom, char buffer, char moveTo)
{
	if (n == 1)
	{
		cout << moveFrom << " -> " << moveTo << endl;
		return;
	}
	move(n -1, moveFrom, moveTo, buffer);  //A -> B 通过C
	move(1, moveFrom, buffer, moveTo);  // A -> C 通过B
	move(n -1, buffer,  moveFrom ,moveTo); // B -> C 通过A
}


int main()
{
   move(3, 'A', 'B', 'C');
    return 0;
}

汉诺塔实际上是线性递归模式,减而治之的思想;
汉诺塔中的三根柱子具有等价性,操作具有对称性;

相关标签: 数据结构与算法