先建Queue.h头文件
#pragma once
#define MAXSIZE 5
#define ELEMTYPE int
typedef struct
{
int front, rear;
ELEMTYPE data[MAXSIZE];
}Queue;
void InitQueue(Queue &Q);
bool EnQueue(Queue &Q, ELEMTYPE e);//入队
bool DeQueue(Queue &Q, ELEMTYPE &e);//出队
bool GetTop(Queue Q, ELEMTYPE &e);//获取队顶元素
再建Queue.cpp文件
#include "Queue.h"
void InitQueue(Queue & Q)
{
Q.front = Q.rear = 0;
}
bool EnQueue(Queue & 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(Queue & Q, ELEMTYPE & e)
{
if(Q.rear== Q.front)
return false;
e = Q.data[Q.front];
Q.front = (Q.front + 1) % MAXSIZE;
return true;
}
bool GetTop(Queue Q, ELEMTYPE & e)
{
if (Q.rear == Q.front)
return false;
e = Q.data[Q.front];
return true;
}
再写测试代码(Main函数)
#include<iostream>
#include"Queue.h"
using namespace std;
int main() {
Queue Q;
int t;
InitQueue(Q);
EnQueue(Q, 10);
EnQueue(Q, 9);
DeQueue(Q, t);
cout << t << endl;
GetTop(Q, t);
cout << t << endl;
DeQueue(Q, t);
cout << t << endl;
EnQueue(Q, 8);
EnQueue(Q, 7);
EnQueue(Q, 6);
EnQueue(Q, 5);
EnQueue(Q, 8);
DeQueue(Q, t);
cout << t << endl;
DeQueue(Q, t);
cout << t << endl;
DeQueue(Q, t);
cout << t << endl;
DeQueue(Q, t);
cout << t << endl;
getchar();
}