队列的关键在于先进先出 #include<iostream> #include<stdlib.h> using namespace std; #define QUEUE_MAX_SIZE 5 typedef struct{ int *front; int *rear; int queuesize; }Queue; void InitQueue(Queue &Q){ Q.front=new int[QUEUE_MAX_SIZE]; Q.rear=Q.front; Q.queuesize=QUEUE_MAX_SIZE; } bool EmQueue(Queue &Q,int val){ if(Q.rear-Q.front==Q.queuesize) { cout<<"队列已满!"<<endl; return false; } else{ *Q.rear++=val; return true; } } int DeQueue(Queue &Q){ if(Q.rear==Q.front){ cout<<"队列为空!"<<endl; exit(0); } return *Q.front++; } int main(){ Queue Q; InitQueue(Q); EmQueue(Q,1); EmQueue(Q,2); EmQueue(Q,3); EmQueue(Q,4); EmQueue(Q,5); EmQueue(Q,6; EmQueue(Q,7); DeQueue(Q); cout<<DeQueue(Q)<<endl;// 2 return 0; }