#include <iostream>
using namespace std;
typedef int Element;
#define MaxSize 10
//定义顺序存储
typedef struct {
Element date[MaxSize];
int front, rear;
}SqQueue;
//顺序队列初始化
bool SqQueueInit(SqQueue &Q) {
Q.rear = Q.front = 0;
cout << "初始化成功" << endl;
return true;
}
//队列判空
bool SqIsEmpty(SqQueue Q) {
if (Q.rear == Q.front && Q.front == 0) {
cout << "队列为空" << endl;
return true;
}
cout << "队列不为空" << endl;
return false;
}
//队列判满
bool SqIsMan(SqQueue Q) {
if (Q.rear == MaxSize) {
cout << "队列已满" << endl;
return true;
}
cout << "队列没满" << endl;
return false;
}
//顺序队列入队
bool SqEn(SqQueue& Q ,Element e) {
if (SqIsMan(Q)) {
return false;
}
Q.date[Q.rear++] = e;
cout <<"元素 " << e << " 入对成功" << endl;
return true;
}
//顺序队列出队
bool SqDel(SqQueue& Q,Element &e) {
if (SqIsEmpty(Q)) {
cout << "队列为空" << endl;
}
e = Q.date[Q.front++];
cout <<"元素 " << e << " 出队成功" << endl;
return true;
}
//顺序队列打印
bool show(SqQueue &Q) {
if (SqIsEmpty(Q)) {
return false;
}
int i = Q.front;
while (i != Q.rear) {
cout << Q.date[i] << endl;
i++;
}
return true;
}
//测试顺序队列
void testSqQueue() {
SqQueue Q;
SqQueueInit(Q);
Element e = 1;
while (e <= 10) {
SqEn(Q, e);
e++;
}
show(Q);
SqDel(Q, e);
show(Q);
}
//===================================顺序实现循环队列--牺牲一个单元==========================&#
队列以及循环队列(牺牲一个单元,Size,Tag)的顺序表实现
最新推荐文章于 2024-10-06 22:39:26 发布