1、/* * * * * * * * * * * * * * * * * * * * * * * */*PROGRAM :循环队列 */*CONTENT :初始化,入队列,出队列 */* * * * * * * * * * * * * * * * * * * * * * * *#include #include #include #include #define MAXQSIZE 5enum BOOLFalse,True;typedef struct /定义队列结构char elemMAXQSIZE; /队列体int front; /队头指针int rear; /队尾指针SqQueue;void
2、initial(SqQueue /初始化一个队列BOOL En_SqQueue(SqQueue /将一个元素入队列BOOL De_SqQueue(SqQueue /将一个元素出队列void Print_SqQueue(SqQueue);/显示队列中所有元素void main()SqQueue S;char ch,j;int flag=1;BOOL temp;textbackground(3); /设定屏幕颜色textcolor(15);/-程序解说-printf(“本程序实现循环队列的操作。n“);printf(“可以进行入队列,出队列等操作。n“);/-clrscr();initial(S)
3、; /初始化队列while(flag) printf(“请选择n“);printf(“1.显示队列所有元素n“);printf(“2.入队列n“);printf(“3.出队列n“);printf(“4.退出程序n“);scanf(“ %c“,switch(j)case 1:Print_SqQueue(S); /显示队列中所有元素break;case 2:printf(“请输入队的元素(一个字符):“);scanf(“ %c“, /输入要入队列的字符temp=En_SqQueue(S,ch);/入队列if(temp=False) printf(“队列已满!n“);Print_SqQueue(S)
4、;break;case 3:temp=De_SqQueue(S,ch); /出队列if(temp!=False) printf(“删除了一个元素:%cn“,ch);/若队列不空,显示出队列的元素Print_SqQueue(S);else printf(“队列为空!n“);/否则队列为空break;default:flag=0;printf(“程序运行结束,按任意键结束!n“);getch();void initial(SqQueue /队头指针及队尾指针同置为 0BOOL En_SqQueue(SqQueue /若队列已满,返回 FalseQ.elemQ.rear=ch; Q.rear=(Q.
5、rear+1)%MAXQSIZE; /修改队尾指针return True;BOOL De_SqQueue(SqQueue /若队列已空,返回 Truech=Q.elemQ.front; Q.front=(Q.front+1)%MAXQSIZE; /修改队头指针 return True; /成功出队列,返回 Truevoid Print_SqQueue(SqQueue Q) /显示队列中所有元素int i;if(Q.front=Q.rear) printf(“队列为空!n“);else i=Q.front;while(i!=Q.rear)printf(“%c “,Q.elemi);i+;if(i=MAXQSIZE) i=i%MAXQSIZE;printf(“n“);