(1)设计一个字符序列或链队列。2.编写一个程序,用于排队、出队、读取队列头元素以及显示队列中的所有元素。

# include & ltstdio.h & gt/湖南大学统计系/

# 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);

}

}

结束