没有合适的资源?快使用搜索试试~ 我知道了~
首页迷宫问题c语言课设本设计程序实现一个以链表作存储结构的栈类型,再用非递归法走出迷宫的路径。
迷宫问题c语言课设本设计程序实现一个以链表作存储结构的栈类型,再用非递归法走出迷宫的路径。
4星 · 超过85%的资源 需积分: 50 70 下载量 45 浏览量
更新于2023-07-10
7
收藏 100KB DOC 举报
通过利用c语言的设计一个关于迷宫的问题,本设计程序实现一个以链表作存储结构的栈类型,再用非递归法走出迷宫的路径。
资源详情
资源推荐
迷宫问题
一、题目分析
本实验的搜索方式为深度优先或广度优先,通过堆栈来实现,实现此目的
需要以下过程:本程序实现迷宫的探索过程. 以用户和计算机对话的方式,即
在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的
运算命令,然后程序就探索路径并输出路径。本演示程序中,输入形式以“回车
符”为结束标志,且允许出现重复字符。利用二维指针实现迷宫位置的存储,并
用栈存贮探索路径,每个结点含三个整形变量。输入的形式以回车结束。本程
序中,用户可以读取文件里的迷宫,也可自己重新编辑迷宫,而且用户可以编
辑任意大小的迷宫,然后程序自动探索路径,并输出迷宫的路径。
二、设计过程
1.总体设计:
本设计程序实现一个以链表作存储结构的栈类型,再用非递归法走出迷宫
的路径。
(1).基本操作:
Stack Initstack ();
构造函数,建立一个空栈,完成栈的初始化;
操作结果:通过字符串 a 构造两个位数不限的长整数。
int IsEmpty();
初始条件:已存在栈
操作结果:如果栈为空,则结果为“真”,否则为“假”
void Push(Stack pstack,Data x);
初始条件:已存在栈
操作结果:把元素 data 压入栈顶
void Pop(Stack pstack);
初始条件:已存在栈,且非空
操作结果: 栈顶元素出栈,且删除栈顶元素
Data GetPop(Stack pstack);
初始条件:已存在栈,且非空
操作结果:求栈顶元素的值
第 1 页
迷宫问题
Data SetStackelem(int x,int y,int d);
初始条件:已存在栈
操作结果:设置栈元素的值
DisplayPath(Stack pStack)
初始条件:已存在栈
操作结果:输出栈元素的值
(2).本程序包含三个模块:
1)主程序模块——定义迷宫函数,并调用迷宫途径函数
2)栈模块——实现定义的抽象数据类型
3)路径探索模块——实现探索迷宫路径
2.流程图:
图 1 主函数流程图
第 2 页
开始
定义方向二维数组并赋植
定义迷宫途径,用 0 和 1
组成的二维数组表示
调用迷宫途径函数
结束
迷宫问题
Y
N
图 2 栈的初始化操作
Y
N
图 3 入栈操作
第 3 页
开始
定义栈 pstack
建立一个新的栈并赋给 pstack
返回栈 pstack
判断 pstack 是否为空
把 -1 赋给栈顶
开始
判断栈顶是否小于
MAX-1
把栈顶 pstack->pos+1
把输入元素形参 X 赋给栈顶
返回
剩余10页未读,继续阅读
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功