汉诺塔演示C语言

本文详细介绍了如何使用C语言编程实现汉诺塔问题的解决方案,结合easyX图形库进行动态演示,帮助读者深入理解递归算法和汉诺塔原理。
摘要由CSDN通过智能技术生成
参考了一下easyx.cn的代码 并加以修改 逻辑更加清楚
#include<easyx.h>
#define MAX 5
typedef struct MyRect
{
	int left;
	int top;
	int right;
	int bottom;
}MYRECT;

typedef struct MyStack
{
	MYRECT rect[MAX+1];
	int    top;
}MYSTACK;

MYSTACK g_Pillar[3] = { 0 };
int		g_nPan = MAX;
// 函数声明
void Hannoi(int n, char a, char b, char c);		// 汉诺塔递归
void Move  (int n, char a, char b);				// 移动过程
int  switchab(char a);

int main()
{
	initgraph(800, 650);
	setbkcolor(WHITE);
	cleardevice();
	//三根柱子
	setlinecolor(RED);
	line(400, 110, 400, 500);
	line(600, 110, 600, 500);
	line(200, 110, 200, 500);
	//底座
	setfillcolor(LIGHTGRAY);
	fillrectangle(80, 501, 720, 510);
	//-------------
	for (int i = 0; i < MAX; i++)
	{
		g_Pillar[0].top++;
		g_Pillar[0].rect[g_Pillar->top].left   = 115  + i * 5;
		g_Pillar[0].rect[g_Pillar->top].top  
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值