版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构上机实验报告 实验二:栈和队列 学生姓名:蒋映喆 学生学号:201086250124 学生院系:城南学院 学生班级:计算机1001班 程序清单: #include#include#include#includetypedef int Status;#define OK 1#define ERROR 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef structint row;int line;PosType;typedef structint ord;PosType seat;int di;SelemType;ty
2、pedef structSelemType *base;SelemType *top;int stacksize;SqStack;Status InitStack (SqStack &S)S.base = (SelemType *)malloc(STACK_INIT_SIZE * sizeof(SelemType);if(!S.base)exit(-2);S.top = S.base;S.stacksize = STACK_INIT_SIZE;return OK;Status Push(SqStack &S,SelemType e)if(S.top - S.base = S.stacksize
3、)S.base = (SelemType *)realloc(S.base,(S.stacksize + STACKINCREMENT)*sizeof(SelemType);if(!S.base)exit(-2);S.top = S.base + S.stacksize;S.stacksize += STACKINCREMENT;*S.top+ = e;return OK;Status Pop(SqStack &S,SelemType &e)if(S.top = S.base)return 0;e = *-S.top;return OK;Status StackEmpty(SqStack S)
4、if(S.top = S.base)return OK;elsereturn ERROR;void InitMaze(int maze1111)srand(int)time(NULL);for(int i = 0;i10;i+)maze0i = 0;for(i = 1; i9; i+)mazei0 = 1;for(int j = 1;j9;j+)mazeij = rand()%2;mazei9 = 1;for(i = 0;i10;i+)maze9i = 1;void OutputmazeFirst(int maze1111)printf(nn);printf(所建迷宫为(#为外墙):nn);f
5、or(int i = 0;i10;i+)printf(# );printf(n);for(i=1;i9;i+)printf(# );for(int j = 1;j9;j+)printf(%d ,mazeij);printf(# );printf(n);for(i = 0;iseat.rowp-seat.line = 2;p+;for(int i = 0;i10;i+)printf(# );printf(n);for(i=1;i9;i+)printf(# );for(int j = 1;j9;j+)if(mazeij = 2)printf(* );elseprintf( );printf(# )
6、;printf(n);for(i = 0;i10;i+)printf(# );printf(n);Status Pass( int maze1111,PosType CurPos) if (mazeCurPos.rowCurPos.line=0) return OK; elsereturn ERROR; void MarkFoot( int maze1111,PosType CurPos)mazeCurPos.rowCurPos.line=1;PosType NextPos(PosType CurPos, int Dir) PosType ReturnPos; switch (Dir) cas
7、e 1: ReturnPos.row=CurPos.row; ReturnPos.line=CurPos.line+1; break; case 2: ReturnPos.row=CurPos.row+1; ReturnPos.line=CurPos.line; break; case 3: ReturnPos.row=CurPos.row; ReturnPos.line=CurPos.line-1; break; case 4: ReturnPos.row=CurPos.row-1; ReturnPos.line=CurPos.line; break; return ReturnPos;St
8、atus MazePath(int maze1111,SqStack &S, PosType start, PosType end) / 若迷宫maze中从入口 start到出口 end的通道,则求得一条存放在栈中 / (从栈底到栈顶),并返回TRUE;否则返回FALSE PosType curpos; int curstep; SelemType e; InitStack(S); curpos = start; / 设定当前位置为入口位置 curstep = 1; / 探索第一步 do if (Pass(maze,curpos) / 当前位置可通过,即是未曾走到过的通道块 MarkFoot(
9、maze,curpos); / 留下足迹 e.di =1; e.ord = curstep; e.seat= curpos; Push(S,e); / 加入路径 if (curpos.row = end.row & curpos.line=end.line) return OK; / 到达终点(出口) curpos = NextPos(curpos, 1); / 下一位置是当前位置的东邻 curstep+; / 探索下一步 else / 当前位置不能通过 if (!StackEmpty(S) Pop(S,e); while (e.di=4 & !StackEmpty(S) MarkFoot(m
10、aze,e.seat); Pop(S,e); / 留下不能通过的标记,并退回一步 / while if (e.di4) e.di+; Push(S, e); / 换下一个方向探索 curpos = NextPos(e.seat, e.di); / 当前位置设为新方向的相邻块 while (!StackEmpty(S) ); return 0; int main()SqStack S;int maze1111;printf(创建一个正方形迷宫,大小为10 X 10:n);InitMaze(maze);OutputmazeFirst(maze);PosType start,end;printf(n请输入入口坐标(行,列):);scanf(%d,&start.row);scanf(%d,&start.line);printf(n请输入出口坐标(行,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年度粮油食品检验人员模考模拟试题附答案详解(综合题)
- 2024-2025学年度电工高分题库附答案详解(夺分金卷)
- 2024-2025学年度粮油食品检验人员高频难、易错点题带答案详解(突破训练)
- 2024-2025学年度中级软考模拟试题(轻巧夺冠)附答案详解
- 2024-2025学年度火电电力职业鉴定考试彩蛋押题【易错题】附答案详解
- 2024-2025学年度公务员考试《常识》考前冲刺练习题附参考答案详解(达标题)
- 2024-2025学年刑法期末考试题库试题(能力提升)附答案详解
- 2024-2025学年度公务员(国考)题库带答案详解(新)
- 2024-2025学年度反射疗法师3级综合提升测试卷附答案详解【预热题】
- 2026年项目进度报告通报函3篇
- GB/T 4450-1995船用盲板钢法兰
- GB/T 39489-2020全尾砂膏体充填技术规范
- GB/T 14598.301-2010微机型发电机变压器故障录波装置技术要求
- GB 30526-2019烧结墙体材料和泡沫玻璃单位产品能源消耗限额
- GA 139-2009灭火器箱
- 2023年江苏专转本计算机真题及答案
- 部编版小学道德与法治五年级下册第1课《读懂彼此的心》课件
- 医疗机构消防安全管理九项规定(2020版)-精品原创课件
- DBJ 53-T-46-2012 云南省城镇道路及夜景照明工程施工验收规程
- 工业厂房水电安装工程施工方案
- 食品质量与安全管理教材PPT课件(105页)
评论
0/150
提交评论