首页 > 学院 > 开发设计 > 正文

专题五-队列

2019-11-10 18:46:33
字体:
来源:转载
供稿:网友

队列的定义和实现

队列的定义(1)队列是一种特殊的线性表(2)队列仅在线性表的两端进行操作队头:取出数据元素的一端队尾:插入数据元素的一端队列 不允许在中间部位进行操作队列的性质性质:先进先出(FIFO)队列的操作(1)队列的一些常用的操作创建队列销毁队列清空队列进队列出队列获取队头元素获取队列元素   队列的顺序存储实现写代码队列的链式存储实现(1)链式存储实现

队列的优化实现

顺序队列的瓶颈(1)顺序队列线性表的第一个元素作为队头线性表表的最后一个元素作为队尾(2)入队的新元素是在线性表的最后,时间复杂度为O(1)(3)出队时需要将后续的所有元素向前移动,时间复杂度为O(n)问题:如何将出队的时间复杂度降为O(1)?顺序队列的优化方案(1)定义front使其始终代表队头的下标出队时将队头元素返回,且front++(2)定义rear使其始终代表队尾下一个元素的下标入队时将新元素插入,且rear++没有必要只将下标为0的位置定义为队头写代码链式队列的瓶颈(1)链式队列线性表的第一个元素作为队头线性表的最后一个元素作为队尾(2)入队的新元素是在线性表的最后,时间复杂度为O(n)(3)出队的元素即链表的第一个元素,时间复杂度O(1)问题:如何将入队操作的时间复杂度降低到O(1)链式队列的优化方案(1)定义rear指针始终指向链表中的最后一个元素入队时将新元素通过rear插入队尾,且将rear指向新元素

队列的特别实现

栈与队列
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表