(1)设计一个字符序列或链队列。2.编写一个程序,用于排队、出队、读取队列头元素以及显示队列中的所有元素。
# include & ltstdlib.h & gt
#定义MAXSIZE 100
typedef char数据类型;
typedef结构
{ DataType elem[MAXSIZE];
int前,后;
} SeQueue
void addq (SeQueue *Q,数据类型x)
{
如果((Q-& gt;rear+1)% MAXSIZE = = Q-& gt;front) printf("队列已满!\ n ");
else { Q->;rear =(Q-& gt;rear+1)% MAXSIZE;q->;elem[Q->;后方]= x;}
}
数据类型delq(SeQueue *Q)
{ if(Q-& gt;front = = Q-& gt;后部)
{ printf("队列为空!\ n ");return(-1);}
else { Q->;front =(Q-& gt;front+1)% MAXSIZE;return(Q->;elem[Q->;前面]);}
}
数据类型前端(序列*Q)
{数据类型x;
如果(Q->;front = = Q-& gt;rear){printf("队列为空!\ n ");return(-1);}
else x = Q-& gt;elem[(Q->;front+1)% MAXSIZE];
return(x);
}
主()
{
int选择;数据类型x,y;SeQueue Q;int I;
q . rear =-1;q . front =-1;
printf(" \ n输入I = ");/*输入一个非零数字以继续*/
scanf("%d ",& ampI);
while(I){ printf(" \ n队列子系统\ n ");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");
printf(" * 1-加入团队* \ n ");
printf(" * 2-出列* \ n ");
printf(" * 3-阅读组长* \ n ");
printf(" * 4-explicit * \ n ");
printf(" * 0-exit * \ n ");
printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");
Printf("请输入你的选择(0,1,2,3,4)");scanf("%d ",& amp选择);
开关(选择)
{
案例1:{
Printf("输入要排队的元素x = ");
scanf(" %c ",& ampx);
addq(& amp;q,x);
}破;
案例2:{ delq(& amp;q);printf( " %c ",q . elem[q . front]);}破;
案例3:{ y = front(& amp;q);printf("%c ",y);}破;
情况4:{ for(I =(q . front+1)% MAXSIZE;我& lt= q . rear;i++)printf("%c ",q . elem[I]);}破;
案例0:出口(0);
}
}
结束