资源描述
#include<stdio.h>
#include<iomanip.h>
#include<malloc.h>
#include<iostream>
#define MAXSIZE 10
typedef struct
{
int num;//数据成员//
int *base;//基地址//
int front;
int rear;
int s;
}SeQueue;
int InitQueue(SeQueue &Q)//构造空列表//
{
Q.base=(int*)malloc(MAXSIZE*sizeof(int));
if(!Q.base) exit (1);
Q.front=0;
Q.rear=0;
return 1;
}
int QueueEmpty(SeQueue Q)//判队空//
{
if(Q.rear==Q.front)
return 1;
else
return 0;
}
void EnQueue(SeQueue &Q,int e)//入队//
{
if(Q.front==(Q.rear+1)%MAXSIZE)
cout<<"error"<<endl;
Q.rear=Q.rear+1;
if(Q.rear==Q.num+1)
Q.rear=1;
Q.base[Q.rear-1]=e;
Q.s=1;
}
int DeQueue(SeQueue &Q)//出队//
{
int e;
if(Q.front=Q.rear)
return 0;
Q.front=Q.front+1;
if(Q.front==Q.num+1)
Q.front=1;
e=Q.base[Q.front-1];
if(Q.front==Q.rear)
Q.s=0;
return e;
}
void print_SeQueue(SeQueue &Q)
{
int i;
cout<<"front="<<Q.front<<endl;
cout<<"rear="<<Q.rear<<endl;
if(Q.s==0)
{cout<<"队列空!"<<endl;}
i=Q.front;
do{
i=i+1;
if(i==Q.num+1)
i=1;
cout<<Q.base[i-1]<<endl;
}while(i!=Q.rear);
}
int main()
{
int i;
SeQueue S;
i=InitQueue(S);
cout<<"输出队中所有元素:"<<endl;
EnQueue(S,1);
EnQueue(S,2);
EnQueue(S,3);
EnQueue(S,4);
EnQueue(S,5);
print_SeQueue(S);
cout<<"入队后再输出所有元素为:"<<endl;
print_SeQueue(S);
cout<<"输出出队元素为:"<<endl;
cout<<DeQueue(S)<<endl;
return 0;
}
展开阅读全文