C++队列(数组)
#include "iostream.h" #define MAXSIZE 10 typedef struct queue{ int q[MAXSIZE] ; int front; int rear; int n;//用于引用计数 }; void initQueue(queue* qq); void initQueue(queue* qq) //此处必须是引用或者是指针才有效 { qq->front=0; qq->rear=0; qq->n=0; for(int i=0;i<MAXSIZE;i++) { qq->q[i]=0; } } bool isQueueEmpty(queue* qq); //判断队列是否为空 bool isQueueEmpty(queue* qq) { if(qq->front==qq->rear) { return true; } return false; } bool isQueueFull(queue* qq);//判断是否队列已满 bool isQueueFull(queue* qq) { if(qq->rear==MAXSIZE) { return true; } return false; } bool addElement(queue* qq , int Element); bool addElement(queue* qq , int Element) { //从队列的队尾入队 if(isQueueFull(qq)==false) { qq->q[qq->rear]=Element; qq->rear++; qq->n++; //队列数据加一 return true; } return false; } void display(queue* qq);//显示队列中的所有元素 void display(queue* qq) { for(int i=qq->front;i<qq->rear;i++) { cout<<qq->q[i]<<endl; } } int removeElement(queue* qq); int removeElement(queue* qq) { int value = qq->q[qq->front]; qq->front++; qq->n--; return value; } void main() { int number; //queue* qq;没有开辟内存空间导致内存泄漏 queue* qq =new queue(); if(!qq) { return ; } initQueue(qq); //循环添加n个元素 for(int i=0;i<6;i++) { cin>>number; addElement(qq,number); } cout<<"显示队列中的所有元素"<<endl; display(qq); cout<<"移除队首元素"<<endl; removeElement(qq); cout<<"再次显示全队列元素"<<endl; display(qq); cout<<"显示计数(队列数据的个数)"<<endl; cout<<qq->n<<endl; }<img src="http://img.blog.csdn.net/20140811105839646" alt="" />
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。