12_2_1.cpp

来自「王红梅编《数据结构》大多数的实验源码。内附详细的实验报告。」· C++ 代码 · 共 47 行

CPP
47
字号
#include "TowerStack.h"
#include <iostream.h>

void Move(TowerStack *a, TowerStack *b)
{
	b->Push(a->Pop());
	cout << a->GetName() << "->" << b->GetName() << endl;
}

void Hanoi(int n, TowerStack *a, TowerStack *b, TowerStack *c)
{
	if (n == 1)
		Move(a, c);
	else
	{
		Hanoi(n - 1, a, c, b);
		Move(a, c);
		Hanoi(n - 1, b, a, c);
	}
}

void main()
{
	while (true)
	{
		TowerStack a('A');
		TowerStack b('B');
		TowerStack c('C');
		int n;
		cout << "请输入碟子的个数:";
		cin >> n;
		int disks[MAX_SIZE];
		for (int i = n - 1; i >= 0; i--)
		{
			disks[i] = i;
			a.Push(&disks[i]);
		}
		try
		{
			Hanoi(n, &a, &b, &c);
		}
		catch (char *s)
		{
			cout << s << endl;
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?