首页 > 代码库 > 队列之数组实现
队列之数组实现
#include<iostream>using namespace std;struct Queue{ int maxCnt; int* elements; int front,rear;};Queue* createQueue(int max=7){ Queue* queue = (Queue*)malloc(sizeof(Queue)); queue->front=0; queue->rear=0; queue->maxCnt=max+1;//预留一个空间来预防假溢出的情况 queue->elements = new int[ queue->maxCnt]; return queue;}bool isFull(Queue* queue){ return ((queue->rear+1)%queue->maxCnt)==queue->front;}bool isEmpty(Queue* queue){ return queue->rear==queue->front;} bool InQueue(Queue* queue,int value){ if(isFull(queue)) return 0; queue->elements[queue->rear++]=value; queue->rear%=queue->maxCnt; return 1;}bool DeQueue(Queue* queue,int* ans){ if(isEmpty(queue)) return 0; *ans = queue->elements[queue->front++]; queue->front%=queue->maxCnt; return 1;}bool front(Queue* queue,int* ans){ if(isEmpty(queue)) return 0; *ans = queue->elements[queue->front]; return 1;}void clearQueue(Queue* queue){ int x; while(!isEmpty(queue)) { DeQueue(queue,&x); cout<<x<<" "; } cout<<endl;}void outPut(Queue* queue){ int st = queue->front; int ed = queue->rear; while(st!=ed) { cout<<queue->elements[st]<<" "; st++; st%=queue->maxCnt; } cout<<endl;} void main(){ int len=4; Queue* queue = createQueue(); int v; for(int i=0;i<len;i++) { v = rand() % 100; cout<<v<<" "; InQueue(queue,v); } cout<<endl; outPut(queue); clearQueue(queue); for(int i=0;i<5;i++) { v = rand() % 100; cout<<v<<" "; InQueue(queue,v); } cout<<endl; outPut(queue); DeQueue(queue,&v); cout<<v<<endl; outPut(queue); front(queue,&v); cout<<v<<endl; outPut(queue); DeQueue(queue,&v); cout<<v<<endl; outPut(queue); DeQueue(queue,&v); cout<<v<<endl; outPut(queue); for(int i=0;i<5;i++) { v = rand() % 100; cout<<v<<" "; InQueue(queue,v); } cout<<endl; outPut(queue); if(!InQueue(queue,v)) cout<<"fail"<<endl; else outPut(queue); DeQueue(queue,&v); cout<<v<<endl; outPut(queue); DeQueue(queue,&v); cout<<v<<endl; outPut(queue); DeQueue(queue,&v); cout<<v<<endl; outPut(queue); DeQueue(queue,&v); cout<<v<<endl; outPut(queue); for(int i=0;i<3;i++) { v = rand() % 100; cout<<v<<" "; InQueue(queue,v); } cout<<endl; outPut(queue); cin>>len;}
队列之数组实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。