循环队列(C语言版)

2015-11-19 23:06:53 · 作者: · 浏览: 13
#include 
  
   
using namespace std;

#define MAXSIZE 50
typedef int QueueElementType; 
typedef struct 
{
	QueueElementType elem[MAXSIZE];
    int front;      //指向当前队头元素
    int rear;       //指向队尾元素的下一个位置
}SeqQueue;

void InitQueue(SeqQueue &Q);
void InputQueue(SeqQueue &Q);
bool EnterQueue(SeqQueue &Q,QueueElementType x);
QueueElementType DeleteQueue(SeqQueue &Q);
QueueElementType BackQueue(SeqQueue Q);//返回队尾元素
bool IsFull(SeqQueue Q);
bool IsEmpty(SeqQueue Q);
void OutputQueue(SeqQueue Q);
int  QueueLength(SeqQueue Q);

int main()
{
    int x;
    SeqQueue q;
	InitQueue(q);
    InputQueue(q); 
    x = BackQueue(q); 
    cout<<"队尾元素为:"<
   
>m; while(m!=-1) { if(IsFull(Q)) cout<<"当前队列已满,无法插入"< >m; } } } bool EnterQueue(SeqQueue &Q,QueueElementType x) { if((Q.rear+1)%MAXSIZE == Q.front) return false; Q.elem[Q.rear] = x; Q.rear = (Q.rear+1)%MAXSIZE; return true; } QueueElementType DeleteQueue(SeqQueue &Q) { if(IsEmpty(Q)) { cout<<"当前队列为空,出队列失败!"<

?

\