STL中的栈和队列.ppt_第1页
STL中的栈和队列.ppt_第2页
STL中的栈和队列.ppt_第3页
STL中的栈和队列.ppt_第4页
STL中的栈和队列.ppt_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、3.3可用资源STL中的栈和队列,参考书: 1.左飞编数据结构原理与经典问题求解电子, 2008.10 2.P.J.PLAUGER等著 王昕译 C+ STL中文版电力, 2002.5 3.翁惠玉数据结构:思想与实现高教, 2009.8 章小莉 北京电子科技学院 计算机科学与技术系,3.3 STL中的栈和队列,3.3.1 STL中的stack 1 stack类提供的常用方法 2 stack类的使用举例 3.3.2 STL中的queue 1 queue类提供的常用方法 2 queue类的使用举例,STL的适配器,STL中的stack类是一种适配器,是通过简单地修饰线性类deque的接口而获得的另一

2、种容器类。 适配器(Adaptor):一种设计模式,可以将一个类的接口转换为另一个类的接口,使原本因接口不相容而不能合作的类可以一起运行。 STL中的适配器是用来修改其他组件接口的STL组件,是带有一个参数的类模板。 STL包括3种适配器: 容器适配器; 迭代器适配器; 函数适配器;,3.3.1 STL中的stack,(1)stack类提供5种常用方法,(2)stack类的使用举例,举例1:int栈的使用,#include #include #include #include using namespace std; int main() stack myStack;/定义栈 myStack.

3、push(5);/压栈 myStack.push(6); myStack.push(7); myStack.pop(); /出栈 coutmyStack.top()endl; coutmyStack.size()endl; coutmyStack.empty()endl; return 0; ,#include #include #include #include #include using namespace std; int main() ifstream inf; inf.open(temp.txt); if (!inf) cerr s; string line; while (get

4、line(inf,line)/读入一行文本 s.push(line); /压入栈 inf.close(); while (!s.empty()/栈不空,输出栈顶元素 couts.top()endl; s.pop();/弹栈 return 0; ,举例2:字符串栈的使用,3.3.2 STL中的queue,(1)queue类也是容器适配器,与stack相同,修饰deque而来。主要提供6种常用方法,(2)queue类的使用举例,举例1:int队列的使用,#include #include #include #include using namespace std; int main() queue

5、 myQueue; myQueue.push(5);myQueue.push(6);/数据入队列 myQueue.push(7); myQueue.push(8); myQueue.pop();/数据出队 coutmyQueue.front()endl; coutmyQueue.back()endl; coutmyQueue.size()endl; coutmyQueue.empty()endl; return 0; ,#include #include #include using namespace std; bool existOrNot(int num, queue myQueue)

6、while (!myQueue.empty() if (myQueue.front()=num) return true; else myQueue.pop(); return false; int main() queue memQueue; int times=12;int tmpValue; int page =4,3,2,1,4,3,5,4,3,2,1,5;/页面调度序列 for (int i=0; i12; i+) if (memQueue.size()3) memQueue.push(pagei); else if (existOrNot(pagei,memQueue)/查询页面在否 times-; else /不在,弹出第一页,调入新页 memQueue.pop(); memQueue.push(pagei); ,举例2:操作系统的内存调度算法FIFO实现,int size=memQueue.size(); while (size0)/输出当前在内存的页面值 coutmemQueue.front() ; tmpValue=memQueue.front();

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论