#include<iostream>
#include<stack>
#include<cmath>
#define MAXSIZE 15
using namespace std;
typedef struct SeqQueue {
int data[MAXSIZE];
int front;
int rear;
};
void initQueue(SeqQueue* s) {
for (int i = 0; i < MAXSIZE; i++) {
s->data[i] = 0;
}
s->front = 0;
s->rear = 0;
}
bool enterQueue(SeqQueue* s, int n) {
if ((s->rear + 1) % MAXSIZE == s->front)
return false;
s->data[s->rear] = n;
s->rear = (s->rear + 1) % MAXSIZE;
return true;
}
bool deleteQueue(SeqQueue* s, int* n) {
if (s->front == s->rear)
return false;
*n = s->data[s->front];
s->front = (s->front + 1) % MAXSIZE;
return true;
}
void coutQueue(SeqQueue s) {
if (s.front <= s.rear) {
cout << "Queue: ";
for (int i = s.front; i < s.rear; i++) {
cout << s.data[i] << " ";
}
cout << endl;
}
else {
cout << "Queue: ";
for (int i = s.front; i < MAXSIZE; i++) {
cout << s.data[i] << " ";
}
for (int i = 0; i < s.rear; i++) {
cout << s.data[i] << " ";
}
cout << endl;
}
}
int main() {
SeqQueue s;
initQueue(&s);
for (int i = 0; i < 11; i++) {
enterQueue(&s, i);
}
coutQueue(s);
for (int i = 0; i < 5; i++) {
int n = 0;
deleteQueue(&s, &n);
cout << "delete:" << n << endl;
}
coutQueue(s);
for (int i = 0; i < 11; i++) {
enterQueue(&s, i);
}
coutQueue(s);
for (int i = 0; i < 5; i++) {
int n = 0;
deleteQueue(&s, &n);
cout << "delete:" << n << endl;
}
coutQueue(s);
return 0;
}
#include<iostream>
#include<stack>
#include<cmath>
#define MAXSIZE 15
using namespace std;
typedef struct SeqQueue {
int data[MAXSIZE];
int front;
int rear;
int tag;
};
void initQueue(SeqQueue* s) {
for (int i = 0; i < MAXSIZE; i++) {
s->data[i] = 0;
}
s->front = 0;
s->rear = 0;
s->tag = 0;
}
bool enterQueue(SeqQueue* s, int n) {
if (s->front==s->rear&&s->tag==1)
return false;
if ((s->rear + 1) % MAXSIZE == s->front) {
s->tag = 1;
}
else {
s->tag = 0;
}
s->data[s->rear] = n;
s->rear = (s->rear + 1) % MAXSIZE;
return true;
}
bool deleteQueue(SeqQueue* s, int* n) {
if (s->front == s->rear && s->tag == 0)
return false;
if ((s->front + 1) % MAXSIZE == s->rear) {
s->tag = 0;
}
else {
s->tag = 1;
}
*n = s->data[s->front];
s->front = (s->front + 1) % MAXSIZE;
return true;
}
void coutQueue(SeqQueue s) {
if (s.front < s.rear) {
cout << "Queue: ";
for (int i = s.front; i < s.rear; i++) {
cout << s.data[i] << " ";
}
cout << endl;
}
else {
cout << "Queue: ";
for (int i = s.front; i < MAXSIZE; i++) {
cout << s.data[i] << " ";
}
for (int i = 0; i < s.rear; i++) {
cout << s.data[i] << " ";
}
cout << endl;
}
}
int main() {
SeqQueue s;
initQueue(&s);
for (int i = 0; i < 11; i++) {
enterQueue(&s, i);
}
coutQueue(s);
for (int i = 0; i < 5; i++) {
int n = 0;
deleteQueue(&s, &n);
cout << "delete:" << n << endl;
}
coutQueue(s);
for (int i = 0; i < 11; i++) {
enterQueue(&s, i);
}
coutQueue(s);
for (int i = 0; i < 5; i++) {
int n = 0;
deleteQueue(&s, &n);
cout << "delete:" << n << endl;
}
coutQueue(s);
return 0;
}