标签:blog http os io 数据 for 2014 ar
#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="" />标签:blog http os io 数据 for 2014 ar
原文地址:http://blog.csdn.net/u010296979/article/details/38488839