- 1、本文档共139页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3第三章栈和队列,栈和队列,队列和栈的区别,栈和队列的共同特点是,队列和堆栈的区别,数据结构栈和队列,栈和队列的共同点是,堆栈和队列,栈和队列都是,队列和栈有什么区别
第三章 栈和队列 3.1 栈的ADT以及存储表示和实现 3.2 栈的应用 3.3 栈和递归 3.4 队列 知识要点: 栈和队列是两种重要的线性结构。 从数据结构的角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子集,即它们是操作受限的线性表。 1. 栈的基本概念 栈(Stack)限制在表尾进行插入和删除运算的线性表。对于栈而言,表尾具有特殊含义,称为栈顶(Top);表头称为栈底(Bottom)。 当表中没有元素时称为空栈。 例子 栈是先进后出(后进先出)的数据结构 铁路调度图 铁路进行列车调度时, 常把站台设计成栈式结构的站台,如右图所示。试问: 设有编号为1,2,3,4,5,6的六辆列车, 顺序开入栈式结构的站台。 铁路调度图 那么是否能够得到435612, 325641, 154623和135426的出站序列? 思考:栈的基本操作 3.1 栈的ADT以及存储表示和实现 2. 栈的抽象数据类型 2. 栈的抽象数据类型 3. 栈的存储结构 顺序栈 链栈 顺序栈的表示和实现 顺序栈,即栈的顺序存储结构。利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。 附设指针top指示栈顶元素在顺序表中位置。 顺序栈的类型定义 #define STACK_INIT_SIZE 100; #define STACKINCREMENT 10; typedef struct { SElemType *base; SElemTYPE *top; int stackzise; }SqStack; 说明1 解决顺序栈最大存储容量难于估计而产生溢出的方法是:先为栈分配一个基本容量,然后当栈的空间不够使用时再逐段扩大。 设定两个常量: STACK_INIT_SIZE(存储空间初始分配量) STACKINCREMENT(存储空间分配增量) 说明2 通过栈的初始化操作,可以根据初始分配量STACK_INIT_SIZE 进行第一次存储分配,该存储空间的基地址存放base指针中,base称为栈底指针。在顺序表中,它始终指向栈底的位置。 若base的值为NULL,则表明栈结构不存在。 说明3 top指针为栈顶指针,其初始值指向栈底,此时是空栈。top==base可作为栈空的标记。 每当插入新的栈顶元素时,top增1;删除栈顶元素时,top减1。 因此,在非空顺序栈中,栈顶指针top始终在栈顶元素的下一个位置上。 思考 解决顺序栈的溢出? 如何判定顺序栈空? 如何判定顺序栈不存在? 实例 顺序栈的实现p46-47 //====ADT Stack的表示和实现=========== //-------顺序栈的存储表示和实现-------- 。。。。。。 //-------基本操作的函数原型说明--------- 。。。。。。 //-------基本操作的算法描述-------------- 顺序栈的基本运算 顺序栈的初始化: Status InitStack(SqStack S) { S.base=(SelemType *)malloc(STACK_INIT_SIZE *sizeof(SElemType)); if(!S.base) exit(OVERFLOW); S.top=S.base; S.stacksize=STACK_INIT_SIZE; return OK; } //InitStack 入栈操作 Status Push(SqStack S,SElemType e) { if(S.top - s.base=S.stacksize) { S.base=(SElemType *) realloc(S.base, (S.stacksize + STACKINCREMENT) * sizeof(SElemType)); if(!S.base)exit(OVERFLOW); S.top=S.base+S.stacksize; S.stacksize+=STACKINCREMENT; } *S.top++=e; return OK; } //Push 出栈操作 Status Pop(SqStack S,SElemType e){ if(S.top==S.base) return ERROR; e=*--S.top;
您可能关注的文档
- 2009年海淀区高三二模(英语).doc
- 2009年天津市高考英语试题及答案.doc
- 2009年高考天津英语试题及参考答案.doc
- 2009年职称英语等级考试卫生类(B级)(京华网校提供).doc
- 2009第七章神经退行性疾病治疗药物.ppt
- 2009模拟题库计算机.doc
- 2009数学建模暑期培训.ppt
- 2009职称英语真题.doc
- 2010安徽省蚌埠二中2010届高三上学期期中考试.doc
- 2010届高三一轮复习数学精品资料5.5正弦定理和余弦定理.doc
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
最近下载
- 江苏义务教育课程设置调整方案.doc VIP
- Unit2Differentfamilies单元整体教学说课(课件)-人教PEP版(级上册.pptx
- 014成人肢体及浅表躯干软组织肉瘤放疗靶区勾画和计划设计指南.pdf VIP
- sl176-2026水利水电工程施工质量评定SL223—2026水利水电建设工程验收规程.doc VIP
- 鲁教版八年级上册英语课文翻译.pdf VIP
- 世界地图空白图高清版.pdf VIP
- 2025年西学中中医内科学.pdf VIP
- 牙齿矫正协议书范本Word模板.docx VIP
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 在用工业管道检验规定.pdf VIP
文档评论(0)