#include<iostream>
using namespace std;
const int Max=10;
struct queue
{
int data[Max];
int front;
int rear;
};
void initqueue(queue &s)
{
s.front=0;
s.rear=0;
}
bool isempty(queue &s)
{
return(s.front==s.rear);
}
void display(queue &s)
{
//cout<<"队列中元素依次为(队头在左): ";
for(int i=s.front;(i+1)%Max<=s.rear;i++)
cout<<s.data[i]<<' ';
//cout<<endl;
}
bool push(queue &s,int x)
{
if((s.rear+1)%Max==s.front)
{
cout<<"queue is full,push failure!\n";
return false;
}
s.data[s.rear]=x;
s.rear=(s.rear+1)%Max;
return true;
}
bool pop(queue &s,int &x)
{
if(s.rear==s.front)
{
cout<<"queue is empty,pop failure!\n";
return false;
}
x=s.data[s.front]; //top位置为当前栈顶元素,所以先-1在出栈
s.front=(s.front+1)%Max;
return true;
}
bool gettop(queue &s,int x)
{
if(s.front==s.rear)
{
cout<<"queue is empty,pop failure!\n";
return false;
}
x=s.data[s.front];
cout<<"get success!\n";
return true;
}
int main()
{
queue aaa;
initqueue(aaa);
push(aaa,7);
push(aaa,4);
push(aaa,5);
push(aaa,1);
push(aaa,3);
push(aaa,10);
push(aaa,6);
//pop(aaa,x);
//pop(aaa,x);
display(aaa);
cout<<endl<<endl<<endl;
//cout<<"x: "<<x<<endl;
system("pause");
return 1;
}
循环队列
最新推荐文章于 2025-03-23 17:35:24 发布