#include <iostream> #include<stdio.h> #include<stdlib.h> using namespace std; int len=10;// the len of the que typedef struct que{ int *qbase; int fr; int tr; }ques; bool isempty(ques *ptr) { if(ptr->fr==ptr->tr) { return true; } return false; } bool isfull(ques *ptr) { if((ptr->tr+1)%len==ptr->fr) { return true; } return false; } void initque(ques *ptr) { ptr->qbase=(int *)malloc(sizeof(int)*len); //不判断内存是否申请失败了哈。。。 ptr->fr=ptr->tr=0; } void enque(ques *ptr,int val) { if(isfull(ptr)) { cout<<"满了,填不进去了"<<endl; } else{ ptr->qbase[ptr->tr]=val; ptr->tr=(ptr->tr+1)%len; cout<<"en que ok"<<endl; } } void dque(ques *ptr) { if(isempty(ptr)) { cout<<"队列空了"<<endl; } else{ ptr->qbase[ptr->fr]=0; ptr->fr=(ptr->fr+1)%len; } } void printque(ques *q) { if(isempty(q)) { cout<<"空队列"<<endl; } else{ int i=q->fr; while(i!=q->tr) { cout<<q->qbase[i]<<" "<<endl; i=(i+1)%len; } } } int main() { ques q={NULL,0,0};//表示一个队列 cout<<isfull(&q)<<endl; cout<<isempty(&q)<<endl; initque(&q); enque(&q,23); enque(&q,83); enque(&q,293); enque(&q,213); dque(&q); printque(&q); cout << "Hello world!" << endl; return 0; }