首页天道酬勤数据结构循环队列删除所有奇数,串数据结构

数据结构循环队列删除所有奇数,串数据结构

张世龙 05-06 11:40 43次浏览

要在队列的顺序存储区中实现循环队列,除了使用一系列地址连续的单元格顺序存储从队列头到队列尾的元素之外,还需要分别设置两个指针:前端和rear,分别指示队列头元素和队列尾元素的位置初始化空队列时,设为front=rear=0,每次出入新队列的末尾要素时末尾指针递增1; 每次删除队列标头元素时,都会增加标头指针

为了充分利用内存空间,克服“虚拟溢出”现象的方法是将内存空间视为一个一致的圆环,并将存储在其中的队列称为循环队列。 在循环队列中,入队时尾指针在前面跟踪尾指针; 出队时头针把尾针向前追,队伍空闲时和排满时的头针变成了一样。 因此,在条件front==rear下无法判别队列是空队列还是满队列

解决这个问题的方法至少有两种。

另外,设置区分队列是空还是满的标志位,其约定在队列头部指针位于队列结束指针的下一位置时将队列设为满状态的标志。 全职(rear 1) % maxsize=front # define maxsize 1000 typedefintelemtype; structcirseqqueue { elemtype data [ maxsize ]; int front; int rear; //循环队列初始化voidqueueinitial (cirseqqueue * pq ) { pQ-front=pQ-rear=0; (//循环队列判定空的boolisempty(cirseqqueue*pq ) ) { return pQ-front==pQ-rear; (//循环队列为boolisfull(cirseqqueue*pq ) return ) pq-rear1) % MAXSIZE==pQ-front; //元素排队voidenqueue(cirseqqueue*pq,ElemType e ) if (is full ) pq ) )队列溢出! ' endl; 退出(1; ) pq-rear=(pq-rear1) % MAXSIZE; pQ-data[pQ-rear]=e; //elemtype dequeue (cirseqqueue * pq ) if (isempty ) pq ) cout'null队列! ' endl; 退出(1; ) pq-front=(pq-front1) % MAXSIZE; 返回pq-data [ pq-front ]; (/)团队领导元素elemtypegetfront (cirseqqueue * pq ) if (isempty ) pq ) ) cout'null队列! ' endl; 退出(1; }返回pq-data [ (pq-front1) % MAXSIZE]; //循环队列中为空的语音队列(cirseqqueue * pq ) { pQ-front=pQ-rear=0; }

leetcode简单题,leetcode 两数之和