pta 双端队列
2020-07-15 05:09
106 查看
这个题有点小坑,头插尾插先挪动指针还是先插入不一样,当然这个双端队列是在是循环队列的基础上,循环队列具体不说了。删除时,头部是删除的当前指针的值,而尾部删除是删除前移的值
bool Push( ElementType X, Deque D )//将元素X插入到双端队列D的头; { if((D->Rear + 1) % D->MaxSize == D->Front)//队列满 { return false; } D->Front = (D->Front + D->MaxSize - 1) % D->MaxSize;//头指针前移 D->Data[D->Front] = X;//插入数据 return true; } ElementType Pop( Deque D )//删除双端队列D的头元素,并返回; { if(D->Rear == D->Front)//队列空 { return ERROR; } ElementType n = D->Data[D->Front];//暂存数据 D->Front = (D->Front + 1) % D->MaxSize;//头指针后移 return n; } bool Inject( ElementType X, Deque D )//将元素X插入到双端队列D的尾部 { if((D->Rear + 1) % D->MaxSize == D->Front)//队列满 { return false; } D->Data[D->Rear] = X;//插入X D->Rear = (D->Rear + 1) % D->MaxSize;//尾指针后移 return true; } ElementType Eject( Deque D )//删除双端队列D的尾部元素,并返回 { if(D->Rear == D->Front)//队列空 { return ERROR; } else { D->Rear = (D->Rear + D->MaxSize-1 ) % D->MaxSize;//尾指针前移 return D->Data[D->Rear];//返回值 } }
相关文章推荐
- PTA_6-6 Deque(25 分)手动实现双端队列
- 双端队列(qeque容器类):#include
- 双端队列_legend
- 队列,双端队列和栈
- PTA 数据结构 银行业务队列简单模拟
- hdu 5261 蜀道难(deque 双端队列)
- PTA 7-29 修理牧场(25 分)优先队列的应用
- 双端队列deque
- 设计循环双端队列——击败 时间100%,空间50%
- uva 11988 - Broken Keyboard (a.k.a. Beiju Text)(双端队列deque)
- 二分+RMQ/双端队列/尺取法 HDOJ 5289 Assignment
- 用Python实现的数据结构与算法:双端队列
- POJ 3159 Candies 差分约束系统(这题卡SPFA的队列的双端队列)
- Java进阶--ArrayDeque双端队列完全解析
- HDU 4286 Data Handler (双端队列)
- deque双端队列用法
- 双端队列的使用
- ArrayDeque双端队列
- 文件读取,双端队列实现滑动窗
- 双端队列stl