- 1、本文档共28页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程的内容 * 上堂课若干问题讨论 * 同学向老师提问: 1. 删除结点时,好像不需要知道前驱结点的指针吧?用P=P-next一个操作应该就足够了? 错! 老师继续问:先删除会不会丢掉了指针qb? —请自查P37DelFirst(…)函数定义 同学回答老师疑问: 自测卷第6题中的判断条件确实不完备。 例如选表长为10,从第1结点开始删除连续10个结点时,i=1,j=10,却会造成i+k10而误告警。 应当改为i+k-1a.length 2. P43中case1中的两个动作,为何要先删除,后插入?作者意图是不多占任何其他内存 讨论:自测卷第七题第2小题 【严题集2.6②】已知L是无表头结点的单链表,且P结点既不是首元结点,也不是尾元结点,请写出在P结点后插入S结点的核心语句序列。 答:此题答案不唯一。 * 法二:已知P结点,则不必“顺藤摸瓜”,直接链接即可。 (4)??S-next=P-next; (1) P-next=S; 法一:从头“摸”起: (7) Q=P; (11) P=L; (8) while(P-next!=Q)P=P-next; (10) P=Q; (4) S-next=P-next; (1) P-next=S; 第三章 栈和队列 3.1 栈(Stack) * 3.2 队列(Queue) 1. 定义 2. 逻辑结构 3. 存储结构 4. 运算规则 5. 实现方式 1. 定义 2. 逻辑结构 3. 存储结构 4. 运算规则 5. 实现方式 1. 定义 * 3.1 栈 与同线性表相同,仍为一对一关系。 用顺序栈或链栈存储均可,但以顺序栈更常见 只能在栈顶运算,且访问结点时依照后进先出(LIFO)或先进后出(FILO)的原则。 关键是编写入栈和出栈函数,具体实现依顺序栈或链栈的不同而不同。 基本操作有入栈、出栈、读栈顶元素值、建栈、或判断栈满、栈空等。 3. 存储结构 4. 运算规则 5. 实现方式 2. 逻辑结构 限定只能在表的一端进行插入和删除运算的线性表(只能在栈顶操作) 问:堆栈是什么?它与一般线性表有什么不同? * 3.1 栈 答:堆栈是一种特殊的线性表,它只能在表的一端(即栈顶)进行插入和删除运算。 与一般线性表的区别:仅在于运算规则不同。 一般线性表 堆栈 逻辑结构:一对一 逻辑结构:一对一 存储结构:顺序表、链表 存储结构:顺序栈、链栈 运算规则:随机存取 运算规则:后进先出(LIFO) “进” =压入=PUSH(x) “出” =弹出=POP ( y ) 教材P44对栈有更详细定义: * 栈 是仅在表尾进行插入、删除操作的线性表。 表尾(即 an 端)称为栈顶 top ; 表头(即 a1 端)称为栈底base 例如: 栈 s= (a1 , a2 , a3 , ……….,an-1 , an ) a1 称为 栈底元素 an 称为 栈顶元素 插入元素到栈顶(即表尾)的操作,称为入栈。 从栈顶(即表尾)删除最后一个元素的操作,称为出栈。 强调:插入和删除都只能在表的一端(栈顶)进行! 顺序栈示意图 * s a1 a2 a3 data a4 (栈底) (栈顶) 99 . . . 3 2 1 0 top 表和栈的操作区别——对线性表 s= (a1 , a2 , …. , an-1 , an ) * a1 a2 …… an 顺序栈S ai …… 表头 表尾 栈底base 栈顶top 低地址 高地址 写入:v[i]= ai 读出: x= v[i] 压入:PUSH (an+1) 弹出: POP (x) 前提:一定要预设栈顶指针top! 低地址 高地址 v[i] a1 a2 ai an …… 顺序表V[n] …… an+1 入栈操作——例如用堆栈存放(A,B,C,D) (注意要遵循“后进先出” 原则) * A A C B A B A top 核心语句: top=L; 顺序栈中的PUSH函数 status Push(ElemType x) { if(topM){上溢} else v[top++]=x; } Push (B); Push (C); Push (D); top top top top 低地址L Push (A); 高地址M B C D 出栈操作——例如从栈中取出‘B’ (注意
您可能关注的文档
- 文书工作与档案管理第三版4第四章(2632KB).ppt
- 第3章世界的居民第2节世界的人种(2695KB).ppt
- 文书工作与档案管理第三版5第五章(2360KB).ppt
- 文书工作与档案管理第三版6第六章(2699KB).ppt
- 文书工作与档案管理第三版7第七章电子文书的形成与处理(700KB).ppt
- 现代房屋构成与材料赏析10.屋顶(18904KB).ppt
- 文书工作与档案管理第三版8第八章档案的收集与鉴定(2591KB).ppt
- 第3章世界的居民第3节世界的语言与宗教(19710KB).ppt
- 文书工作与档案管理第三版9第九章档案的整理与保管(3002KB).ppt
- 现代房屋构成与材料赏析12.门窗、变形缝(9168KB).ppt
最近下载
- 小学1-6年级必背古诗词115首(A4打印版).pdf
- 校对符号及其用法.doc VIP
- 大气污染控制工程课程设计.docx VIP
- 2022小学学生寒假体育家庭作业清单方案(详细版).pdf
- 一年级100以内加减法混合练习题(A4打印).pdf VIP
- 2024年四大名著三国演义知识竞赛题库及答案(共100题).pdf
- 2024年邵阳职业技术学院单招职业技能测试题库及答案(典优).docx VIP
- 广告标识牌采购投标方案(技术标360页).docx
- CNAS-SC170:2024 信息安全管理体系认证机构认可方案.docx VIP
- GB50156-2012(2014年版) 汽车加油加气站设计与施工规范.pdf
文档评论(0)