- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
a0 a1 an-1 an …… 队头 队尾 入队 出队 数组下标 0 1 n-1 n max (一般状态) …… 队头 队尾 入队 出队 数组下标 0 1 n-1 n max (队空状态) a0 a1 an-1 an amax …… 队头 队尾 入队 出队 数组下标 0 1 n-1 n max (队满状态) 元素移动方向 元素移动方向 循环队列 在想象中将数组弯曲成环形,元素出队时,后继元素不移动,每当队尾达到数组最后一个元素时,便再回到数组开头。 特殊的线性群体——队列 1 2 3 4 …… m-1 m-2 m-3 0 am am+1 am+2 a3 队头 队尾 a4 am-2 am-3 am-1 队满状态 元素个数=m 1 2 3 4 …… m-1 m-2 m-3 0 队尾 队头 队空状态 元素个数=0 队尾 1 2 3 4 …… m-1 m-2 m-3 0 a0 a1 a2 a3 队头 一般状态 例9-10 队列类模板 #ifndef QUEUE_CLASS #define QUEUE_CLASS #include iostream.h #include stdlib.h const int MaxQSize = 50; 特殊的线性群体——队列 template class T class Queue { private: int front, rear, count; T qlist[MaxQSize]; public: Queue (void); void QInsert(const T item); T QDelete(void); void ClearQueue(void); T QFront(void) const; int QLength(void) const; int QEmpty(void) const; int QFull(void) const; }; // 构造函数,初始化队头指针、队尾指针、元素个数 template class T QueueT::Queue (void) : front(0), rear(0), count(0) {} //向队尾插入元素(入队) template class T void QueueT::QInsert (const T item) { // 如果队满,中止程序 if (count == MaxQSize) { cerr Queue overflow! endl; exit(1); } // increment count, assign item to qlist and update rear count++; //元素个数增1 qlist[rear] = item; //向队尾插入元素 rear = (rear+1) % MaxQSize; //队尾指针增1,用取余运算实现循环队列 } // 删除队首元素,并返回该元素的值(出队) template class T T QueueT::QDelete(void) { T temp; // 如果队空,中止程序 if (count == 0) { cerr Deleting from an empty queue! endl; exit(1); } // 记录队首元素值 temp = qlist[front]; count--; // 元素个数自减 front = (front+1) % MaxQSize; //队首指针增1。取余以实现循环队列 return temp; //返回首元素值 } // 访问队列首元素(返回其值) template class T T QueueT::QFront(void) const {
您可能关注的文档
最近下载
- 三阶魔方F2L公式研究及记忆方法.pdf
- 装表接电工考试(技师)习题库(第1部分).pdf VIP
- 幼儿园-健康-危险的食品(预防食物中毒)-课件(互动版).pptx
- 人教版小学四年级音乐下册《第二单元 五十六朵花》大单元整体教学设计[2022课标].docx
- Q∕GDW 11316-2018 高压电缆线路试验规程.pdf
- 心房颤动患者左心耳封堵术后护理查房.pptx VIP
- 0723S03016-监察法学-理论课程教学大纲-申静、李芹.docx VIP
- 阜外心血管病医院手术分级目录2015版.docx VIP
- DB5328T 44-2025 珠芽黄魔芋栽培技术规程.docx VIP
- 2025年辽宁事业单位考试真题及答案.docx
文档评论(0)