赞
踩
代码如下:
#include<iostream>
using namespace std;//使用标准库,作用防止重名的干扰
typedef int ElemType;//就是自定义一个类型名ElemType
typedef int Status;//自定义类型的语句。
//循环队列结构体定义
typedef struct{
int front;//前
int rear;//后
int maxSize; //最大存储量
ElemType *element; //首地址
}Queue;
//创建一个能容纳mSize的队列
void Create(Queue *Q,int maxSize){
Q->maxSize=maxSize;
Q->element=(ElemType *)malloc(sizeof(ElemType)*maxSize);
Q->front=Q->rear=0;
}
//销毁一个已经存在的队列,释放队列占用的空间
void Destroy(Queue *Q){
Q->maxSize=-1;
free(Q->element);
Q->front=Q->rear=-1;
}
//判断是否为空
bool isEmpty(Queue *Q){//bool表示布尔型变量
return Q->front==Q->rear;
}
bool isFull(Queue *Q){
return (Q->rear+1)%(Q->maxSize)==Q->front;
}
//获取头元素,通过x返回
bool Front(Queue *Q,ElemType *x){
if(isEmpty(Q))
return false;
*x=Q->element[(Q->front+1)%(Q->maxSize)];
return true;
}
//进队操作,在对尾插入x
bool EnQueue(Queue *Q,ElemType x){
if(isFull(Q))
return false;
Q->rear=(Q->rear+1)%Q->maxSize;
Q->element[Q->rear]=x;
return true;
}
//出队操作
bool Dequeue(Queue *Q){
if(isEmpty(Q))
return false;
Q->front=(Q->front+1)%Q->maxSize;
return true;
}
//清除队列中全部元素
void Clear(Queue *Q){
Q->front=Q->rear=0;
}
int main(){
int x,y;
Queue q;
Create(&q,10);
for(int i=0;i<10;i++){
EnQueue(&q,i);
}
Front(&q,&x);
cout<<"队头元素: "<<x<<endl;
cout<<"队列元素: ";
for(int j=0;j<9;j++){
Front(&q,&y);
cout<<y<<" ";
Dequeue(&q);
}
cout<<endl;
return 0;
}
运行结果如下:
欢迎您关注我的微信公众号:学习微站(studysth)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。