资源简介
用栈来实现汉诺塔,要明白递归就是栈的重要应用之一,递归是系统自动调用栈来处理。
代码片段和文件信息
/*
2013年10月18日16:03:22
用栈来实现汉诺塔
参考资料:http://www.nowamagic.net/librarys/veda/detail/2300
*/
#include
#include
#define MAXSIZE 100
#define INCREMENT 2
int i=0;
//定义栈结构
typedef struct
{
int * top; //栈顶指针
int * base; //栈底指针
int length; //栈的长度
}Stack;
void move(char a char b){
i++;
printf(“将%c柱最上面的盘子移动到%c柱上\n“ab);
}
void Push(Stack *pint nchar achar b char c){
if(p->top-p->base>=p->length){ //如果栈满,重新分配空间
printf(“栈满了,系统正在重新分配空间...\n“);
p->base=(int *)realloc(p->base(MAXSIZE+INCREMENT) * sizeof(int));
if(!p->base) //空间分配失败
exit(-1);
p->top = p->base+p->length;
p->length = p->length+INCREMENT;
}
//依次将盘子数量以及柱子的名词压入栈(入栈4个元素)
*(p->top) = n;
p->top++;
*(p->top) = a;
p->top++;
*(p->top) = b;
p->top++;
*(p->top) = c;
p->top++;
}
void Pop(Stack *p){
if(p->top==p->base){
printf(“栈空,不能出栈“);
}else{
//出栈4个元素
p->top-
- 上一篇:Newton-cotes公式(数值计算实验)
- 下一篇:智能电梯完整c程序
相关资源
- C语言嵌入式Modbus协议栈,支持主站和
- C语言实现栈操作
- 火烧连营C++版本
- 链表栈的基本操作(C语言
- 自编八皇后问题递归、非递归算法
- Tower_Hanoi.rar
- 数据结构C++语言进出堆栈动画
- C# To C++ Converter 17.10.2 (最新破解版
- PJSIP SIP协议栈C语言
- MFC使用双栈实现简单计算器
- 汉诺塔移动动画 C++
- 数据结构王红梅
- 黑马最新c、c++全栈培训第24期高清无
- 黑马程序员最新24期C/C++全栈培训讲义
- 对于任意给定的输入串词法记号流进
- 黑马最新c、c++全栈培训第24期高清无
- 黑马最新c、c++全栈培训第24期高清无
- 走迷宫问题栈实现.cpp
- 非递归预测分析;C++实现LL1文法分析
- 数据结构实验栈和队列详细实验报告
- 用栈非递归方法迷宫找出路
- 分别用栈和递归来实现十进制转换为
- 商店货架管理栈的操作
- 二叉树非递归遍历源码
- 利用栈求表达式的值,可供小学生作
- c语言汉诺塔代码
- 自建迷宫寻路
- 非常简单的C++迷宫程序,是数据结构
- 停车场管理系 C语言实现停车场管理
- 状态空间法解决汉诺塔问题
评论
共有 条评论