//循环顺序队列(queue)的实现
#include <iostream>
#include <string>
using namespace std;
#define Maxsize 100
typedef struct{
string name;
int num;
}QElemType;
typedef struct{
QElemType *base;
int front;
int rear;
}SqQueue;
//初始化
bool InitQueue(SqQueue &Q){
//创建一个含有头结点的队列
Q.base = new QElemType[Maxsize];
if(!Q.front) exit(0);
Q.front = Q.rear;
}
//求队长度
int QueueLength(SqQueue Q){
return(Q.rear-Q.front+Maxsize)%Maxsize;
}
//入队
bool EnQueue(SqQueue &Q,string Name,int Num){
if((Q.rear+1)%Maxsize == Q.front) return 0;
Q.base[Q.rear].name = Name;
Q.base[Q.rear].num = Num;
//移动
Q.rear = ((Q.rear+1)%Maxsize);
}
//出
bool DeQueue(SqQueue &Q,string &Name,int &Num){
if(Q.rear == Q.front) return 0;
Name = Q.base[Q.front].name;
Num = Q.base[Q.front].num;
Q.front = (Q.front+1)%Maxsize;
}
int main(){
SqQueue q;
InitQueue(q);
string Name,s1;
int Num,s2;
int i=0,j=0;
for(i;i<3;i++){
cout<<"name:"<<"num";
cin>>Name>>Num;
EnQueue(q,Name,Num);
}
for(j;j<3;j++){
DeQueue(q,s1,s2);
cout<<s1<<s2<<"\n"<<endl;
}
return 0;
}
网友评论