2020/2/22 20:02 重新编辑了该文章,将 Dequeue 完善了。
—————————————————— 原文分割线 ——————————————————————
之前一直依赖STL,在无数次TLE的漩涡中。。本萌新终于下定决心手写了queue和dequeue
首先是Queue,实现的功能有:
1.push,pop,front,empty 这四个基本操作
2.附带两个函数next和pre,用于在数组模拟队列的时候方便获取下一个位置,防止下标越界
3.内部有报错
局限性:
1.目前这个只能是int类型。。
2.其实最大长度是固定的,一开始就要设置好,默认为1。设置方式就是:Queue u(999);放在构造函数当中了
3.构造函数中用了data=new int[x];
PS:可以一开始用STL的写了之后,把这个复制过去,把queue<int>全部替换成Queue就行了。
Queue代码如下:
struct Queue
{
int f,r;
int *data;
int sz;
Queue(int x=1)
{
f=r=0;
sz=x;
data=new int[x];
}
int next(int x) {return (x+1)%sz;}
int pre(int x) {return (sz+x-1)%sz;}
bool push(int x)
{
if(next(r)==pre(f))
{
c