目录
- 1. 讲解:
- 2. C++代码实现:
- 小结:
1. 讲解:
2. C++代码实现:
#include <stdlib.h>
#include <iostream>
using namespace std;
#define MaxSize 10
#define ElemType int
typedef struct {
ElemType data[MaxSize];
int front, rear;
}SqQueue;
// 初始化队列
void InitQueue(SqQueue& Q) {
Q.front = Q.rear = 0;
}
// 判断队列是否为空
bool QueueEmpty(SqQueue Q) {
if (Q.front == Q.rear) return true;
else return false;
}
// 入队
bool EnQueue(SqQueue& Q, ElemType e) {
if ((Q.rear + 1) % MaxSize == Q.front) return false; // 队满
Q.data[Q.rear] = e;
Q.rear = (Q.rear + 1) % MaxSize;
return true;
}
// 出队
bool DeQueue(SqQueue& Q, ElemType& e) {
if (QueueEmpty(Q)) return false; // 队空
e = Q.data[Q.front];
Q.front = (Q.front + 1) % MaxSize;
return true;
}
// 查询队头元素
bool GetHead(SqQueue Q, ElemType& e) {
if (QueueEmpty(Q)) return false; // 队空
e = Q.data[Q.front];
return true;
}
// 队列中元素个数
int Length(SqQueue Q) {
return (Q.rear + MaxSize - Q.front) % MaxSize;
}
int main() {
SqQueue myQueue;
InitQueue(myQueue); // 初始化队列
// 入队操作
for (int i = 1; i <= 5; i++) {
EnQueue(myQueue, i);
}
// 获取队头元素
ElemType headElement;
GetHead(myQueue, headElement);
cout << "队头元素为:" << headElement << endl;
// 出队操作
ElemType dequeuedElement;
DeQueue(myQueue, dequeuedElement);
cout << "出队元素为:" << dequeuedElement << endl;
// 输出队列中的元素个数
cout << "队列中的元素个数为:" << Length(myQueue) << endl;
// 判断队列是否为空
if (QueueEmpty(myQueue)) {
cout << "队列为空" << endl;
}
else {
cout << "队列不为空" << endl;
}
return 0;
}