1、【队列的基本操作函数】
#include<bits/stdc++.h>
using namespace std;
int a[100];
int front,rear;
//下面所有的队列操作都在a数组上进行
void init(){//队列的初始化,让队列为空队
front = rear = 0;
}
bool empty(){//返回1的时候为空队
if(front == rear){
return 1;
}else{
return 0;
}
}
int getnum(){
return rear - front;
}
void push(int x){
if(rear+1 <= 99){
rear++;
a[rear] = x;
}else{
cout<<"队满了,不能再入队了"<<endl;
}
}
void pop(){
if(front < rear){
front++;
}else{
cout<<"队空了,无法出队!"<<endl;
}
}
int gettop(){
if(front < rear){
return a[front+1];
}else{
cout<<"空队,没有首元素"<<endl;
}
}
2、【基本函数运用】
输入n,将1-n依次入队,然后依次输出并出队。
#include<bits/stdc++.h>
using namespace std;
int a[100];
int front,rear;
//下面所有的队列操作都在a数组上进行
void init(){//队列的初始化,让队列为空队
front = rear = 0;
}
bool empty(){//返回1的时候为空队
if(front == rear){
return 1;
}else{
return 0;
}
}
int getnum(){
return rear - front;
}
void push(int x){
if(rear+1 <= 99){
rear++;
a[rear] = x;
}else{
cout<<"队满了,不能再入队了"<<endl;
}
}
void pop(){
if(front < rear){
front++;
}else{
cout<<"队空了,无法出队!"<<endl;
}
}
int gettop(){
if(front < rear){
return a[front+1];
}else{
cout<<"空队,没有首元素"<<endl;
}
}
int main(){
init();
int n;
cin>>n;
for(int i=1;i<=n;i++){
cout<<"将"<<i<<"入队"<<endl;
push(i);
}
cout<<endl;
for(int i=1;i<=n;i++){
cout<<"将队首出队"<<" ";
cout<<gettop()<<endl;
pop();
}
}
【方法2】
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[100]={0};
int n;
int front , rear;
cin>>n;
front = rear = 0;
for(int i=1;i<=n;i++){
rear++;
a[rear] = i;
}
while(front < rear){//如果队列不空,输出队首
cout<<a[front+1]<<" ";
front++;
}
// for(int i=1;i<=n;i++){
// cout<<a[front+1]<<" ";
// front++;
// }
}