#include<stdio.h>
#include<stdlib.h>
void menu(void)
{
printf("\n\t\t\t欢迎使用本系统,队列的使用,请按要求操作\n\t\t\t1,初始化队列\n\t\t\t2,现队列长度\n\t\t\t3,现队头元素\n\t\t\t4,字符排队\n\t\t\t5,字符出队\n\t\t\t6,退出\n\n");
}
typedef struct QNode{
char date; /*定义队列类型*/
struct QNode *next;
}QNode,*Queueptr;
typedef struct{
QNode *front;
QNode *rear;
}linkQueue;
int initQueue(LinkQueue *Q)
{
Q.front=Q.rear=(QueuePtr)malloc(sizeof(QNode));
Q.front=NULL;
return 1;
}
int EnQueue(LinkQueue *Q,char e)
{
LinkQueue q;
q=(QueuePtr)malloc(sizeof(Queue));
q->date=e;
q->next=NULL;
Q.rear->next=q;
Q.rear=q;
return 1;
}
int DeQueue(LinkQueue *Q,char *e)
{
LinkQueue q;
if(Q.front==Q.rear) return 0;
e=Q.front->date;
q=Q.front->next;
Q.front->next=q->next;
free(q);
return 1;
}
void main()
{
int a;
do
{
linkQueue *Q
menu();
scanf("%d",&a);
switch(a)
{
case 1:{
initqueue(*Q);
printf("队列初始化成功\n");
system("pause");
system("cls");
}break;
case 2:{
printf("此功能未开放\n");
system("pause");
system("cls");
}break;
case 3:{
printf("队头元素为%c",front->date);
system("pause");
system("cls");
}
case 4:{
char e;
printf("请输入要排队队员\n");
fflush(stdin); //清除缓冲区,即‘回车键’
scanf("%c",&e);
EnQueue(*Q,e);
printf("排队成功\n");
system("pause");
system("cls");
}
case 5:{
char e;
DeQueue(*Q,*e);
printf("成功,出队队员为%c",e\n);
system("pause");
system("cls");
}
case 6:{
a=0;
printf("欢迎下次使用\n");
}
default:printf("输入错误请重新输入\n");
}
}while(a);
}
嗯谢谢 不过初始化 还是不能运行啊!为什么会“死机”