您的当前位置:首页正文

顺序循环表(头、尾指针)

来源:我们爱旅游


#include

#define MAXSIZE 100

typedef struct

{

int data[MAXSIZE];

int front;

int rear;

int count;

}SeqCQueue;

void InitSeqCQueue(SeqCQueue &q) {

q.front =q.rear=q.count=0;

printf(\"初始化成功!\\n\");

//循环队列初始化

}

int QueueAppend(SeqCQueue &q,int e) //数据元素e入队列

{

if((q.rear+1)%MAXSIZE==q.front)

{

printf(\"循环队列满!\\n\");

return 0;

}

else

{

q.data[q.rear]=e;

q.rear=(q.rear+1)%MAXSIZE;

printf(\"%d入队列成功!\\n\

q.count++;

return 1;

}

}

int IsEmptyQueue(SeqCQueue &q) {

if(q.rear ==q.front )

{

printf(\" 空队列!\\n\");

return 1;

}

else

{

//判断循环队列是否为空

printf(\"非空队列!\\n\");

return 0;

}

}

int DeleteQueue(SeqCQueue &q,int &e) {

if(!IsEmptyQueue(q))

{

e=q.data [q.front ];

q.front =(q.front +1)%MAXSIZE;

printf(\"出队列成功!\\n\");

q.count--;

return 1;

//数据元素出队列

}

else

{

printf(\"出队列失败!\\n\");

return 0;

}

}

int GetQueue(SeqCQueue q, int {

if(q.count==0)

{

printf(\"队列已空无数据可取!\\n\");

return 0;

*e) //取队头数据元素

}

else

{

*e=q.data[q.front];

printf(\"成功取元素!\\n\");

return 1;

}

}

void main()

{

int x=0;

SeqCQueue Q;

InitSeqCQueue(Q);

IsEmptyQueue(Q);

DeleteQueue(Q,x);

QueueAppend(Q,88);

GetQueue(Q,&x);

IsEmptyQueue(Q);

DeleteQueue(Q,x);

}

因篇幅问题不能全部显示,请点此查看更多更全内容