c语言 循环队列入队出队,采用顺序存储实现循环队列的初始化、入队、出队操作。...

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

lyzqg2071

2014.08.25

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:44%    等级:7

已帮助:160人

#include<stdio.h>

#define MAXSIZE 100

typedef struct seqqueue

{

int data[MAXSIZE];

int front;

int rear;

}seqqueue;

void Initseqqueue(seqqueue &q) //循环队列初始化

{

q.front =q.rear=0;

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

}

int enqueue(seqqueue &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",e);

return 1;

}

}

int isemptyqueue(seqqueue &q) //判断循环队列是否为空

{

if(q.rear ==q.front )

{

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

return 1;

}

else

{

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

return 0;

}

}

int dequeue(seqqueue &q,int &e) //数据元素出队列,出队列元素暂存储于e中

{

if(!isemptyqueue(q))

{

e=q.data [q.front ];

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

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

return 1;

}

else

{

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

return 0;

}

}

void main()

{

int x=0;

seqqueue qa;

Initseqqueue(qa);

isemptyqueue(qa);

dequeue(qa,x);

enqueue(qa,25);

isemptyqueue(qa);

dequeue(qa,x);

}

00分享举报