#pragma once
#include<iostream>
using namespace std;
#define MAXSIZE 20
typedef class SqQueue
{
public:
void SQInit();
void SQPrint();
void SQDestroy();
bool SQPush(int x);
bool SQPop(int& value);
bool GetHead(int& value);
private:
int* data;
int front, rear;
}SQ;
#include"Queue.h"
void SQ::SQInit()
{
data = new int [MAXSIZE];
front = 0;
rear = 0;
}
void SQ::SQPrint()
{
int i;
for (i = front ; i < rear; i++)
{
if (i != rear)
cout << data[i] << ",";
else
cout << ".";
}
}
bool SQ::SQPush(int x)
{
if ((rear + 1) % MAXSIZE == front)
return false;
data[rear] = x;
rear = (rear + 1) % MAXSIZE;
return true;
}
bool SQ::SQPop(int& value)
{
if (rear == front)
return false;
value = data[front];
front = (front + 1) % MAXSIZE;
return true;
}
bool SQ::GetHead(int& value)
{
if (rear == front)
return false;
value = data[front];
return false;
}
#include"Queue.h"
void test()
{
SQ s;
s.SQInit();
for (int i = 0; i < MAXSIZE+1; i++)
{
s.SQPush(i );
}
s.SQPrint();
cout << endl;
int keep;
for (int i = 0; i < 10; i++)
{
s.SQPop(keep);
}
s.SQPrint();
}
int main()
{
test();
return 0;
}