水题-双端队列
程序员文章站
2022-07-14 14:16:09
...
-
水题-双端队列
-
题目链接:4:双端队列
-
思路:
封装了一个类,要注意的就是在队非空的时候出队,没必要用循环队列
没有什么坑
水题不多说~
-
代码:
//数据结构与算法Mooc(第三章栈与队列4双端队列)
#include<iostream>
#define MAX_SIZE 10000
using namespace std;
class Deque
{
private:
int Data[MAX_SIZE];
int Front;
int Rear;
public:
Deque() :Front(0), Rear(0) {};
bool Empty()
{
return Front == Rear;
}
void Push(int val)
{
Data[++Rear] = val;
}
int Pop_Front()
{
if (Empty())
return 0;
else
Front++;
return 1;
}
int Pop_Back()
{
if (Empty())
return 0;
else
Rear--;
return 1;
}
void Put_Data()
{
if (Empty())
cout << "NULL" << endl;
else
{
for (int i = Front + 1; i <= Rear; i++)
{
cout << Data[i] << " ";
}
cout << endl;
}
}
};
int main()
{
int Test_Time, Op_Time;
int Type, Val;
cin >> Test_Time;
while (Test_Time--)
{
Deque My_queue;
cin >> Op_Time;
while (Op_Time--)
{
cin >> Type >> Val;
if (Type == 1)
My_queue.Push(Val);
else
{
if (Val == 0)
My_queue.Pop_Front();
else
My_queue.Pop_Back();
}
}
My_queue.Put_Data();
}
return 0;
}
上一篇: deque双端队列的基本操作