第三章栈与队列.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章栈与队列概要

3.4 队列的基本概念 队列是一种特殊的线性表,是操作受限的线性表 队列是限定只能在表的一端进行插入,在表的另一端进行删除的线性表 队尾(rear)——允许插入的一端 队首(front)——允许删除的一端 特点 先进先出(FIFO) a1 a2 a3…………………….an 入队 出队 front rear 队列Q=(a1,a2,……,an) 队列的基本运算 Empty( ): 判断队列空 Full( ): 判断队列满 Front( ): 返回队首元素 Back(): 返回队尾元素 Push(x): 将元素x入队列队尾 Pop(x): 删除队首元素并存入x中 3.5 用指针实现队列 template class T class Node { friend class QueueT; private: T data; NodeT *next; }; 用指针实现队列定义 templateclass T class Queue { public: Queue( ) {front = rear = 0;} ~Queue( ); bool Empty( ) const {return ((front) ? false : true);} bool Full( ) const; T Front( ) const; T Back( ) const; QueueT Push(const T x); QueueT Pop(T x); private: NodeT *que_front; // 指向队首结点的指针 NodeT *que_rear; //指向队尾结点的指针 }; 析构函数 释放队列中的所有空间 templateclass T QueueT::~Queue(){ NodeT*next; While(que_front){ next=que_front-next; Delet que_front; que_front=next; } } 取队首元素 返回队首元素的值 templateclass T T QueueT:: Front( ) const { If(Empty()) throw outbounds(); Else return que_front-data; } 取队尾元素 返回队尾元素的值 templateclass T T QueueT:: Back( ) const { If(Empty()) throw outbounds(); Else return que_rear-data; } 在队尾插入元素 templateclass T QueueT QueueT::EnQueue(const T x) { if Full( ) throw NoMem( ); NodeT *p = new NodeT; // 创建一个新结点 p-data = x; p-next = 0; //在队尾插入新结点 if (front) rear-next = p; //队列非空 else front = p; //空队列 rear = p; return *this; } //时间复杂度为O(1) 删除队首元素 templateclass T QueueT QueueT::DeQueue(T x) { if (Empty( )) throw OutOfBounds( ); x = front-data; // 将队首元素存于x中 NodeT *p = front; front = front-next; delete p; // 删除队首结点 return *this; } //时间复杂度为O(1) front rear x入队 ^ x front rear 空队 ^ ^ front y z入队 x y rear ^ z front rear x出队 y ^ z x front rear 空队列 front rear A进队 A front rear B进队 A B front rear C, D进队 A B C D front rear A退队 B C D front rear B退队 C D front rear E,F,G进队 C D E F G C D E F G front rear H进队,溢出 队列的顺序存储结构 队列的顺序存储方式 存在问题

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档