第11次课--链栈的实现、队列和基本操作.pptVIP

第11次课--链栈的实现、队列和基本操作.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
首页 教案 主要内容 栈的概念和特点 栈的存储 链栈的示意图 链栈的实现 建栈 入栈 出栈 显示栈 销毁栈 引例 队列的概念和特点 队列的基本操作 队列的存储 队列的示意图 顺序队列的实现 建队列 入队操作 判断队列是否满的子函数 改进后的入队操作 出队操作 出队操作 判断队列是否为空的子函数 改进后的出队操作 销毁队列 清除队列 显示队列 本次课总结 下课 《C语言与数据结构》 第6次课-----循环结构 * 第8章 第11次课----链栈的实现、队列及基本操作 《C语言与数据结构》 1.队列的顺序存储方式  2.顺序队列的基本操作 教学重点 链栈操作的实现 教学难点 通过本次课的学习,使学生掌握链栈的实现方法、队列的概念及存储方式、顺序队列的实现。 教学目标 链栈的实现、队列及基本操作 教学主题 栈 栈的回顾 链栈的实现 队列 队列的概念 队列的基本操作 队列的存储 顺序队列的实现 什么是栈? 栈是一种特殊的线性表,它只在线性表的一端进行插入和删除操作。 栈中允许插入、删除的这一端称为栈顶,另一个固定端称为栈底。 当表中没有元素时称为空栈。 栈的特点 “先进后出”(First In Last Out) 或“后进先出”(Last In First Out) 回顾:前面介绍的线性表是采用什么方式存储数据的? 栈与前面介绍过的线性表一样,也可以采用顺序存储结构(数组)或者链式存储结构(链表)。 顺序栈 链栈(单链表) 栈的表示 可以用一个栈顶指针(top)来指示栈顶元素存放的位置,用一个栈底指针(bottom)来指示栈底元素的存放位置。由于栈底位置相对不变,通常不用bottom。 【例】先建栈,然后输入一个整型元素后入栈,显示栈的内容。接下来进行出栈操作,再显示栈的内容。最后销毁栈。 数据结构描述 链栈的类型描述如下: struct stack_node { Elemtype data; struct stack_node *next; }; 定义一个指向链栈的栈顶指针: struct stack_node *top; 源程序 运行程序(11_1) 看源程序(11_1) 分析 对于链栈,建栈就是将链表初始化为空表。 源程序 struct stack_node *init_linkstack() { return NULL; } 流程图 源程序 思考:对于链栈,会不会出现栈满的情况? 运行程序(11_1) 看源程序(11_1) 流程图 源程序 运行程序(11_1) 看源程序(11_1) 流程图 源程序 运行程序(11_1) 看源程序(11_1) 分析 只要释放链表中所有结点空间即可。 流程图 源程序 运行程序(11_1) 看源程序(11_1) 在日常生活中,有一些这样的例子。 例1:在食堂排队买饭,排在队首的买完后走掉,新来的排在队尾。 例2:在车站排队买票、在银行排队存取款、在商店排队购物等。 请问:上面的例子中有什么共同的特点? 新进来的,先出去。 什么是队列? 队列是一种特殊的线性表,它在线性表的一端进行插入操作,在另一端进行删除操作。 队列中允许插入的一端称为队尾,允许删除的一端称为队头(首)。 当表中没有元素时称为空队列。 队列的特点 “先进先出”(First In First Out) 队列主要有建队、入队、出队和销毁队列四个基本操作。 建队:向操作系统申请分配存储单元,用来存储队列元素,同时初始化队列指针。 入队:在队尾插入元素。 出队:在队首删除元素。 销毁队列:把存储单元归还给操作系统。 为了实时了解队列的情况,还需要有输出队列这样的操作。 输出队列:显示队列的内容。 回顾:前面介绍的线性表和栈是采用什么方式存储数据的? 队列与它们一样,也可以采用顺序存储结构(数组)或者链式存储结构(链表)。 顺序队列 链队列(单链表) 队列的表示 可以用一个头指针(front)来指示队首元素存放的位置,用一个尾指针(rear)来指示队尾元素的存放位置。 入队的顺序依次为: a1、 a2 、a3 、a4 、 a5 出队的顺序依然是: a1、 a2 、a3 、a4 、 a5 【例】先建队列,然后输入一个整型元素后入队,显示队列的内容。接下来出队,再显示队列的内容。最后销毁队列。 数据结构描述 1)顺序队列就是用数组来存储。顺序队列包括数据区、队首指针、队尾指针三个部分。 2)顺序队列的类型描述如下: #defin

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档