- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 第三章 栈和队列 引言:对线性表 L=(a1,a2,...,an), 可在任意第i(i=1,2,,...n,n+1)个位置插入新元素, 或删除任意第i(i=1,2,,...n)个元素 受限数据结构---- 插入和删除受限制的线性表。 1.栈(stack), 2.队列(queue), 3.双队列(deque) 3.1栈(stack) 3.1.1栈的定义和操作 1.定义和术语 ▲ 栈----限定在表尾作插入、删除操作的线性表。 (a1,a2, ...,an) ←插入元素(进栈) ↑ ↑ ↘删除元素(出栈) 表头 表尾 (栈底) (栈顶) ▲ 栈的元素的进出原则:“后进先出”(Last In First Out)。 ▲ 栈的别名:“后进先出”表、“LIFO”表、反转存储器、地窖。 2.栈的基本操作 (1) Initstack(s)----置s为空栈。 (2) Push(s,e)----元素e进栈s。 若s已满,则发生溢出。 若不能解决溢出,重新分配空间失败,则插入失败。 (3) Pop(s,e)----删除栈s的顶元素,并送入e 。 若s为空栈,发生“下溢”(underflow); 为空栈时,表示某项任务未开始或已完成。 (4) Gettop(s,e)----栈s的顶元素拷贝到e。 若s为空栈,则结束拷贝。 (5) Empty(s)----判断s是否为空栈。 若s为空栈,则Empty(s)为true;否则为false。 3. 模拟铁路调度站 讨论: 假设依次输入3个元素(车厢)A、B和C到栈(调度站)中,可得当哪几种不同输出? (1)输入A,B,C,产生输出A,B,C的过程: (2)输入A,B,C,产生输出C,B,A的过程: (3)输入A,B,C,产生输出B,C,A的过程: 当A,B,C依次进栈,C出栈后,由于栈顶元素是B,栈底 元素是A,而A不能先于B出栈,所以不能在输出序列中, 使A 成为C的直接后继, 即不可能由输入A,B,C产生输出C, A, B。 一般地,输入序列(...,ai,...,aj,...,ak,...)到栈中,不能得到输出序列(...,ak,...,ai,...,aj,...)。 设依次输入元素A,B,C到栈中,可得哪几种输出? 讨论: 假定输入元素 A,B,C,D 到栈中,能得当哪几种输出? 不能得到哪几种输出序列? (1) A,B,C,D (7) B,A,C,D (13) C,A,B,D (19) D,B,C,A (2) A,B,D,C (8) B,A,D,C (14) C,A,D,B (20) D,B,A,C (3) A,C,B,D (9) B,C,A,D (15) C,B,A,D (21) D,C,B,A (4) A,C,D,B (10) B,C,D,A (16) C,B,D,A (22) D,C,A,B (5) A,D,B,C (11) B,D,A,C (17) C,D,A,B (23) D,A,B,C (6) A,D,C,B (12) B,D,C,A (18) C,D,B,A (24) D,A,C,B 共5+5+3+1=14种 3.1.2 栈的存储表示和操作实现 1.顺序栈----用顺序空间表示的栈。 假设栈空间为s[1..maxleng] (1)栈顶指针指向栈顶元素所在位置: (2)顶指针指向顶元素所在位置的下一个空位置 设栈空间为s[1..maxleng]: (2)顶指针指向顶元素所在位置的下一个空位置 设栈空间为s[1..maxleng]: 2.顺序栈的描述,进栈、出栈算法 (1)栈的元素空间s与顶指针top分别定义 a) s和top的分别定义 #define maxleng 100 Elemtype s[maxleng+1]; int st=0,*top=st;//初始化 b) 进栈算法 void push_s(Elemtype s[ ],int *top,Elemtype e) //将元素e压入栈s中,(*top)指向顶元素 { if ((*top)==maxleng) exit(“Overflow”); //会发生溢出,退出
您可能关注的文档
最近下载
- 涉密运行维护管理制度.docx VIP
- MobileFlow-大模型驱动的终端自动化测试新范式-2025研发效能最佳实践.pdf VIP
- OPPO企业AI赋能研效提升的应用与原理解析-2025研发效能最佳实践.pdf VIP
- 《第四单元 西方音乐发展史掠影学习学习项目二 音乐中的浪漫主义》七年级上册音乐人教版 教案(表格式)(2024新版).docx
- T∕CACM 1090-2018 中医治未病技术操作规范 穴位敷贴.docx VIP
- 学科教学与综合育人能力提升谈谈个人见解与感悟.docx VIP
- 新解读《GB_T 35070.3-2018停车场电子收费 第3部分:交易流程》.docx VIP
- 1 《中国人民站起来了》课件(共61张PPT)统编版高中语文选择性必修上册.pptx VIP
- CMF:中国宏观经济专题报告(第98期):读懂价格信号,稳住经济大盘.pdf VIP
- 字节跳动 研发效能提升之道-2025研发效能最佳实践.pdf VIP
文档评论(0)