- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(good)第三章-栈和队列08.ppt1008概论
第三章 栈和队列 3.1 栈 3.2 栈的应用举例 *3.3 栈和递归的实现 3.4 队列 3.1 栈(stack) 3.1.1栈的定义和特点 定义:限定仅在表尾进行插入或删除操作的线性表, 表尾—栈顶,插入、删除端 (Top) 表头—栈底, 不含元素的空表称空栈 特点:先进后出(FILO) 或后进先出(LIFO) 如:假设栈S=(a1,a2,a3,…an),则a1称为栈底元素,an为栈顶元素。栈中元素按a1,a2,a3,…an的次序进栈,退栈的第一个元素应为栈顶元素。 顺序栈示意图 实现过程: *S.top++=e; return OK; } 栈使用的完整C程序实例 #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 #define OK 1 #define OVERFLOW -1 #define ERROR 0 typedef struct{ int *base; int *top; int stacksize; }sqstack; void push(sqstack *s,int e) { if(s-top-s-base=s-stacksize){ s-base=(int*)realloc(s-base,(s- stacksize+STACKINCREMENT)*sizeof(int)); if (!s-base)exit(OVERFLOW); s-top=s-base+s-stacksize; s-stacksize+=STACKINCREMENT; } *(s-top++)=e; } main() { sqstack s; int n,m,e; initstack(s); clrscr(); scanf(%d %d,n,m); while(n){ push(s,n%m); n=n/m; } while(!(s.top==s.base)) { pop(s,e); printf(%d,e); } } 问题提出: 在迷宫中寻找通路以到达出口。 求解思想:回溯法是一种不断试探且及时纠正错误的搜索方法。下面的求解过程采用回溯法。从入口出发,按某一方向向前探索,若能走通(未走过的),即某处可以到达,则到达新点,否则试探下一方向 ; 若所有的方向均没有通路,则沿原路返回前一点,换下一个方向再继续试探,直到所有可能的通路都探索到,或找到一条通路,或无路可走又返回到入口点。 在求解过程中,为了保证在到达某一点后不能向前继续行走(无路)时,能正确返回前一点以便继续从下一个方向向前试探,则需要用一个栈保存所能够到达的每一点的下标及从该点前进的方向。 迷宫求解的算法思想: 设定当前位置的初值为入口位置; do { 若当前位置可通, 则{ 将当前位置插入栈顶; 若该位置是出口位置、则结束; 否则切换当前位置的东邻方块为新的当前位置; } 否则 若栈不空且栈顶位置尚有其它方向未经探索, 则设定新的当前位置为顺时针方向旋转找到的栈顶位置的下一相邻块; 若栈不空但栈顶位置的四周均不可通, 则{ 删去栈顶位置; 若栈不空,则重新测试新的栈顶位置, 直至找到一个可通的相邻块或出栈至空栈; } }while (栈不空); 需要解决的四个问题: 1.表示迷宫的数据结构: 设迷宫为m行n列,利用maze[m][n]来表示一个迷宫,maze[i][j]=0或1; 其中:0表示通路,1表示不通,当从某点向下试探时,中间点有4个方向可以试探,(见图3.4)而四个角点有2个方向,其它边缘点有3个方向,为使问题简单化我们用maze[m+2][n+2]来表示迷宫,而迷宫的四周的值全部为1。这样做使问题简单了,每个点的试探方向全部为4,不用再判断当前点的试探方向有几个,同时与迷宫周围是墙壁这一实际问题相一致。 入口坐标为(1,1),出口坐标为(m,n)。 迷宫的定义如下: #define m 8 /* 迷宫的
您可能关注的文档
- 品质异常在什么时候容易产生讲解.docx
- (2015版)第八章建设中国特色社会主义总布局习题概论.doc
- 《市场营销知识》第三版最新最全教案.doc
- 康终+防癌概要.ppt
- 《市场营销学》课件__第六章_市场细分与目标市场定位.ppt
- 启事_声明_海报写作讲解.ppt
- 囚绿记二版讲解.ppt
- 建材9-建筑装饰保温材料概要.ppt
- 建材市场调研报告概要.pptx
- 建立团队激励体系方案概要.doc
- 2024年03月浙江金华义乌市公安局招考聘用184名警务辅助人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年03月河北省科学技术厅事业单位选聘工作人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年10月贵州兴仁市委政法委公开招聘青年见习人员笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年03月民政部所属事业单位2024年度公开招考31名应届毕业生笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 2024年03月广东肇庆封开县教育系统赴高校招考聘用教师64人笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- [重庆]2025年重庆忠县教育事业单位招聘62人笔试历年参考题库附带答案详解.doc
- 【兵团】2024年新疆生产建设兵团第七师胡杨河市第七师医院医共体招聘工作人员133人笔试历年典型考题及考点剖析附带答案详解.docx
- 2024年10月北京高校大学生就业创业指导中心公开招聘3人笔试历年典型考题(历年真题考点)解题思路附带答案详解.docx
- 【南阳】2024年河南南阳市方城县招才引智事业单位招聘工作人员2人笔试历年典型考题及考点剖析附带答案详解.docx
- 【枣庄】2024年山东枣庄市台儿庄区青年人才优选20人笔试历年典型考题及考点剖析附带答案详解.docx
最近下载
- 无人机行业无人机巡检方案.pptx VIP
- 2025云南电网有限责任公司第三批社会招聘(9人)笔试模拟试题及答案解析.docx VIP
- Unit 1 Letters in Our life(课件)教科版(2024)英语三年级上册.pptx VIP
- 渣油加氢催化剂的再生.pdf VIP
- 云南电网有限责任公司招聘笔试题库2023.pdf VIP
- ERP项目会议纪要-MM小组 进口采购等流程会议纪要0924.doc VIP
- 7334-2007-T 手拉葫芦标准.pdf VIP
- 航空航天知识讲座学习课件PPT.pptx VIP
- 渣油加氢技术进展.pdf VIP
- ERP项目ERP_Meeting Notes_1021_浪潮erp项目实现阶段启动会议.doc VIP
文档评论(0)