云南大学软件学院数据结构实验4.doc
文本预览下载声明
实验难度: A □ B □ C □
序号 学号 姓名 成绩 指导教师 (签名)
学 期: 2017秋季学期
任课教师:
实验题目:
组员及组长:
承担工作:
联系电话:
电子邮件:
完成提交时间: 年 月 日
一、【实验构思(Conceive)】(10%)
(本部分)Design)】(20%)
(本部分)
struct Coor
{
int row;
int column;
int direction;
};
2、定义方向:
struct Move
{
int row;
int column;
};
3、定义/链表结点:
struct LinkNode
{
Coor data;
LinkNode *next;
};
4、定义栈:
class stack
{
private:
LinkNode *top;
public:
stack();
~stack();
void Push(Coor data);
Coor Pop();
Coor GetPop();
void Clear();
bool IsEmpty();
};
5.流程图:
三、【实现(Implement)】(30%)
(本部分
1.定义迷宫定义移动的4个方向:
Move move[4]={{0,1},{1,0},{0,-1},{-1,0}};
2.几个函数功能的描述:
stack(); //构造函数,置空栈
~stack(); //析构函数
void Push(Coor data); //把元素data压入栈中
Coor Pop(); //使栈顶元素出栈
Coor GetPop(); //取出栈顶元素
void Clear(); //把栈清空
bool IsEmpty(); //判断栈是否为空
bool Mazepath(int **maze,int m,int n);
//寻找迷宫maze中从(0,0)到(m,n)的路径
//到则返回true,否则返回false
void PrintPath(stack p); //输出迷宫的路径
void PrintPath2(int m,int n,stack p,int **maze); //输出路径
void Restore(int **maze,int m,int n); //恢复迷宫
3.主函数实现:
int main()
{
system(color f5);
int m=0,n=0;
int **maze; //定义二维指针存取迷宫
cout **************欢迎使用迷宫游戏模拟程序************* endl;
cout * 软件工程 * endl;
cout * 孙越 * endl;
cout * 20161120232 * endl;
cout *************************************************** endl;
maze=GetMaze(m,n); //调用GetMaze函数,得到迷宫
if(Mazepath(maze,m,n)) //调用Mazepath函数获取路径
cout迷宫路径探索成功!\
显示全部