- 4
- 0
- 约 32页
- 2024-05-30 发布于广西
- 举报
学科竞赛编程教研研究院C++NOIPNOIIOI
1PARTONE队列的基本概念队列的实现方式队列的基本操作队列的抽象数据类型队列的定义1234
1PARTONE先进先出(FirstInFirstOut)限制访问点的线性表按照到达的顺序来释放元素。所有的插入在表的一端进行,所有的删除都在表的另一端进行?主要元素队头(front)队尾(rear)队列的基本概念——队列的定义队列(Queue):具有一定操作约束的线性表插入和删除操作:只能在一端插入,而在另一端删除。
1PARTONE队列的基本概念——队列的基本操作出队操作判断队列是否为空入队操作创建队列计算队列的长度
1PARTONE队列的基本概念——队列的抽象数据类型templateclassTclassQueue{public:voidclear();boolenQueue(constTitem);booldeQueue(Titem);boolgetFront(Titem);boolisEmpty();boolisFull();};//队列的运算集//变为空队列//将item插入队尾,成功返回真,否则假//返回队头元素并将其从队列中删除,成功则返回真//返回回队头元素,但不删除,成功则返回真//若队列已空返回真//若队列已满返回真
1PARTONE队列的基本概念——队列的实现方式顺序队列队列的顺序存储实现。通常由一个一维数组和一个记录队列头元素位置的变量front以及一个记录队列尾元素位置的变量rear组成。关键是如何防止假溢出固定的存储空间链式队列队列的链式存储结构。可以用一个单链表实现。插入和删除操作分别在链表的两头进行,队列中每个元素对于链表中的一个结点可以满足大小无法估计的情况都不允许访问队列内部元素
1PARTONE空队列条件:front==rear设两个指针front,rear:rear指示队尾元素位置front指示对头元素位置初值front=rear=0入队列:q[rear++]=x;出队列:x=q[front++];用数组模拟普通队列
1PARTONE(1)创建数组,对数组进行入队及出队的操作voidPush(intvalue){if(rearMaxSize){q[rear++]=value;}}(2)入队操作,向队列中添加valueconstintMaxSize=100;intq[MaxSize];intfront=0;intrear=0;intpop(){if(front!=rear){returnq[front++];}}(3)出队操作,返回出队元素的值用数组模拟普通队列思考:如何用数组模拟计算队列的长度和判断队列是否为空?
1PARTONE用数组模拟环形队列一般情况对满状态front==rear对空状态front==rear如何区分对满与对空呢?解决方案:1.另外设一个标志以区别对空、对满2.少用一个元素空间,约定对头指示的位置不存放元素对空:front==rear队满:(rear+1)%M==frontM为数组长度
1PARTONE用数组模拟队列判断是否溢出常规队列的几种溢出情况(1)设数组长度为M,则当front=0,rear=M时,再有元素入队发生溢出——真溢出当front≠0,rear=M时,再有元素入队发生溢出——假溢出(2)当rear指向数组的最后一个元素的时候,队列再也无法插入新元素,而这时常常还有大量的内存空间被闲置earfront7rearfront真溢出假溢出3
1PARTONE用数组模拟队列判断是否溢出为克服假溢出——环形队列被采用克服真溢出的解决方案:(1)队首固定,每次出队剩余元素向下移动——浪费时间(2)假设队列长为M,让q[0]接在q[M-1]之后,如果rear+1==M,则rear=0。实现:在rear!=front前提下(即队列不满),利用“模”入队:q[rear]=x;rear=(rear+1)%M;出队:x=q[front];front=(front+1)%M;
1PARTONE用数组模拟队列——练习常规队列纸牌问题【问题描述】桌面有一叠牌,从第一张(即位于顶面的牌)开始从上往下依次编号为1~n。当至少还剩两张牌时进行以下操作:把第一张牌扔掉,然后把新的第一张放到整贴牌的最后。输入n,输出每次扔掉的牌,以及最后剩下的牌(3
您可能关注的文档
- C++信息竞赛进级第4讲 搜索剪枝.pptx
- C++信息竞赛进级第5讲 子序列.pptx
- C++信息竞赛进级第6讲 资源分配.pptx
- C++信息竞赛进级第7讲 区间.pptx
- C++信息竞赛进级第8讲 组合数学 (1).pptx
- C++信息竞赛进级第9讲 二分答案.pptx
- C++信息竞赛进级第10讲 二项式系数.pptx
- C++信息竞赛进级第11讲 欧几里得原理.pptx
- C++信息竞赛进级第12讲 广搜.pptx
- C++信息竞赛进级第13讲 二次展开式.pptx
- (正式版)DB33∕T 2574-2023 《 数字乡村建设规范 》.pdf
- (正式版)DB33∕T 2554-2022 《“GM2D”进口商品数据元 》.pdf
- (正式版)DB33∕T 2573-2023 《 助残护理员照护服务规范 》.pdf
- (正式版)DB33∕T 2542-2022 《餐饮计量规范 》.pdf
- (正式版)DB33∕T 2558.1-2022 《林下套种菌药生产技术规程 第1部分:大球盖菇》.pdf
- (正式版)DB33∕T 2558.3-2022 《林下套种菌药生产技术规程 第3部分:羊肚菌 》.pdf
- (正式版)DB33∕T 2575-2023 《 野生猛禽和涉禽安全救护技术规程 》.pdf
- (正式版)DB33∕T 2544-2022 《森林人家建设规范》.pdf
- (正式版)DB33∕T 310010-2021 《沿海防护林生态效益监测与评估技术规程》.pdf
- (正式版)DB33∕T 3004.1-2015 《农村厕所建设和服务规范 第1部分:农村改厕管理规范 》.pdf
最近下载
- 《江苏省建筑施工现场专职安全生产管理人员安全日志(试行)》.docx VIP
- 高速公路建设项目工程量清单及计量规则.pdf VIP
- 2025年“地球小博士”全国地理科普知识大赛历年参考题库含答案详解.docx VIP
- 小学三年级上册写字表字帖(可打印).pdf VIP
- 人教版三年级上册数学期末卷-小学数学三年级上册-期末复习试卷-人教版---.docx VIP
- 公路养护工程量清单计量规则公路养护工程量清单计量规则.doc VIP
- 金属风管支架重量计算表.xls VIP
- 南通市小学语文五年级上册期末试题(含答案).doc
- 幼儿园大班10以内加减法100题.doc VIP
- 绿色建筑材料采购管理制度流程.docx VIP
原创力文档

文档评论(0)