队列先进先出,这里用了顺序(数组)和链式两种方式实现,下次再用链式存储实现以下堆栈试试
循环队列:
//顺序存储结构的循环队列
#include<iostream>
using namespace std;
#define MAXSIZE 100
typedef struct Qnode *Queue;
struct Qnode{
int data[MAXSIZE];
int front;
int rear;
};
Queue creat(){
Queue p;
p = (Queue)malloc(sizeof(Qnode));
p ->front = p ->rear = 0;
return p;
}
int isFull(Queue p){
if((p ->rear + 1) % MAXSIZE == p ->front)
return 1;
else return 0;
}
int isEmpty(Queue p){
if(p ->front == p ->rear)
return 1;
else return 0;
}
void add(Queue p, int x){
if(isFull(p)){
cout << "队列已满";
return;
}
else{
p ->rear = (p ->rear + 1) % MAXSIZE;
p ->data[p ->rear] = x;
return;
}
}
int delet(Queue p){
if(isEmpty(p)){
cout << "队列已空";
return NULL;
}
else{
p ->front = (p ->front + 1)% MAXSIZE;
return p ->data[p ->