- 1、本文档共62页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
数据结构课程的内容1
第三章栈和队列3.1栈(Stack)3.2队列(Queue)1.定义1.定义2.逻辑结构3.存储结构4.运算规则5.实现方式2.逻辑结构3.存储结构4.运算规则5.实现方式2
3.1栈限定只能在表的一端进行插入和删除运算的线性表(只能在栈顶操作)1.定义2.逻辑结构与同线性表相同,仍为一对一关系。3.存储结构用顺序栈或链栈存储均可,但以顺序栈更常见只能在栈顶运算,且访问结点时依照后进先出(LIFO)或先进后出(FILO)的原则。4.运算规则实现方式关键是编写入栈和出栈函数,具体实现依顺序栈或链栈的不同而不同。5.基本操作有入栈、出栈、读栈顶元素值、建栈、或判断栈满、栈空等。3
3.1栈问:堆栈是什么?它与一般线性表有什么不同?答:堆栈是一种特殊的线性表,它只能在表的一端(即栈顶)进行插入和删除运算。与一般线性表的区别:仅在于运算规则不同。一般线性表逻辑结构:一对一堆栈逻辑结构:一对一存储结构:顺序表、链表存储结构:顺序栈、链栈运算规则:随机存取运算规则:后进先出(LIFO)“进”=压入=PUSH(x)“出”=弹出=POP(y)4
教材P44对栈有更详细定义:栈是仅在表尾进行插入、删除操作的线性表。表尾(即a端)称为栈顶top;表头(即a端)称为栈底basen1例如:栈s=(a,aaaa)2,3,……….,n-1,n1a1称为栈底元素an称为栈顶元素插入元素到栈顶(即表尾)的操作,称为入栈。从栈顶(即表尾)删除最后一个元素的操作,称为出栈。强调:插入和删除都只能在表的一端(栈顶)进行!5
栈的表示和实现?顺序栈:栈的顺序存储结构,利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素,指针top指向栈顶元素在顺序栈中的下一个位置,?base为栈底指针,指向栈底的位置。toptopbasetopbasebaabase空栈进栈b进栈a6
顺序栈示意图data99...stop(栈顶)(栈底)3a3a2a1210
顺序栈的类型表示:?#defineSTACK_INIT_SIZE100;?#defineSTACKINCREMENT10;?typedefcharStackData;?typedefstruct{//顺序栈定义?StackData*base;//栈底指针?StackData*top;//栈顶指针?intstacksize;//当前已分配的存储空间?}SeqStack;8
顺序栈的基本运算:?判栈空?intStackEmpty(SeqStack*S){?if(S-top==S-base)return1//空则返回1elsereturn0;//否则返回0?}?判栈满?intStackFull(SeqStack*S){?if(S-top-S-base=S-StackSize)return1//判栈满,满则返回1?elsereturn0;//否则返回0?}9
§初始化voidInitStack(SeqStack*S){//置空栈S-base=(StackData*)malloc(STACK_INIT_SIZE*sizeof(StackData));if(!S-base)exit(OVERFLOW);S-top=S-base;S-stacksize=STACK_INIT_SIZE;Returnok;}10
表和栈的操作区别——对线性表s=(a,aaa)12,….,n-1,n顺序表V[n]顺序栈Sa栈顶top表尾高地址n+1高地址an……an……aiv[i]ai……a2……a2a栈底base表头低地址低地址a11写入:v[i]=ai读出:x=v[i]压入:PUSH(an+1)弹出:POP(x)前提:一定要预设栈顶指针top!11
入栈操作——例如用堆栈存放(A,B,C,D)(注意要遵循“后进先出”原则)高地址MtopDCBAtopCtoptopBBAAA低地址Ltop核心语句:top=L;顺序栈中的PUSH函数statusPush(ElemTypex){if(topM){上溢}elsev[top++]=x;}Push(A);Push(B);Push(C);Push(D);12
?入栈?intPush(SeqStack*S,StackDatax){?//插入元素x为新的栈顶元素?if(StackFull(S)){??S-base=(StackData*)ma
您可能关注的文档
- 个体与组织的心理联系课件.ppt
- 个人理财的方向课件.ppt
- 个人所得税税法普及系列课件.ppt
- 个人成效与时间管理课件.ppt
- 个人外汇业务课件.ppt
- 两种电荷自制课件.pptx
- 两条直线平行课件.ppt
- 两只老虎(二年级)课件.ppt
- 两三位数乘一位数(不连续进位)课件.ppt
- 丝杆工作原理课件.ppt
- 2021-2022学年湖南省常德市安乡县四年级上学期期中语文真题及答案.pdf
- 2023-2024学年河南省南阳市社旗县四年级上学期期中数学真题及答案.pdf
- 2022-2023学年云南省曲靖市四年级下学期期末数学真题及答案.pdf
- 2021-2022学年河南省周口市鹿邑县二年级下册月考语文真题及答案.pdf
- 2018年河南焦作解放区教师招聘考试真题及答案.pdf
- 2019年江西公务员行测考试真题及答案-乡镇.pdf
- 2019中国石油报社应届高校毕业生招聘试题及答案解析.pdf
- 光大银行招聘应届毕业生能力素质测试笔试真题及答案.pdf
- 2024年广西百色教师招聘考试模拟题及答案.pdf
- 2021-2022学年浙江绍兴诸暨市五年级上册语文期末试卷及答案.pdf
最近下载
- 锅炉电脑控制器使用说明书1.doc
- 华西crrt治疗基本信息与标准处方.pdf VIP
- 原神家具负荷表及计算器说明书(多功能小鹏).docx
- 2024-2030年中国橡胶木行业前景深度评估及发展趋势预判研究报告.docx
- 第六讲 中国特色社会主义的创立、发展和完善(解析版).docx VIP
- MITSUBISHI三菱MDS-E EH系列使用说明书.pdf VIP
- 幼儿园中班彩虹泡泡龙课件.pptx
- 5000吨废旧地膜及滴灌带等塑料制品回收加工再利用项目.docx
- 2023年广东省八年级上学期物理期中考试试卷四套附参考答案.docx VIP
- 静脉导管常见并发症临床护理实践指南解读ppt.pptx
文档评论(0)