安安全全过马路:大家帮我运行一下这个程序

来源:百度文库 编辑:高考问答 时间:2024/05/02 04:55:13
#include <stdio.h>
typedef char DataType;
typedef struct node
{ DataType data; /* 存储数据元素*/
struct Quenode *next; /* 指向直接后继元素的指针*/
} Quenode;

typedef struct
{ Quenode *front,*rear; /*定义队列的头指针和尾指针*/
}LinkQue;LinkQue* Lp; /*将头尾指针封装在一起的链队*/

void InitLQue(LinkQue* Lp)
{
Quenode* Q;
Q=(Quenode*) malloc(sizeof(Quenode)) ; /* 申请链队头结点*/
if (Q==NULL)
printf("\n\t\t\t内存分配不成功!");
else
printf("\n\t\t\t内存分配成功!");
Lp->front=Q; /* 头指针指向头结点*/
Lp->front->next=NULL; /* 置头结点指针域为空*/
Lp->rear =Lp->front; /* 尾指针指向头结点*/
}

void InsertLQue(LinkQue *Lp, DataType *x)
{ Quenode *p;
p=malloc(sizeof(Quenode)); // 申请新结点
p->data=x; p->next=NULL;
Lp->rear->next=p;
Lp->rear=p;
}

int ExitLQue (LinkQue* Lp , DataType *x)
/*将队头元素出队,将值送x,*/
{
Quenode *p;
Quenode* Q;
if(EmptyQue(Lp))
{
printf("对空");
return 0;
}
else
{Q=Lp->front->next;
Lp->front->next=Lp->front->next->next;
*x=Q->data;
free(Q);
return 1;
}
}

int LenLQue(LinkQue* Lp)
/* 求循环队列的长度*/
{int Len=0;
LinkQue *Lp;
Lp=Lp;
while(Lp!=NULL)
{Len++;Lp=L->next;}

return Len;
}

void ShowLQue(LinkQue* Lp)
{
Quenode *p;
p=Lp->front->next;
printf("\n\t\t\t");
while(p!=NULL)
{
printf("%c\t",p->data);
p=p->next;
}
printf("\n");
}
main()
{ LinkQue q;int j=1;char choice,x;
while(j){printf("\n");printf("\n");printf("\n");printf("\n");printf("\n\t\t\t链队列\n");printf("\n\t\t\t********************************************");printf("\n\t\t\t* 1--------队列初始化 *");printf("\n\t\t\t* 2--------进 队 *");printf("\n\t\t\t* 3--------出 队 *");printf("\n\t\t\t* 4--------求 队 长 *");printf("\n\t\t\t* 5--------显示 队列 *")printf("\n\t\t\t* 0--------退 出 *");printf("\n\t\t\t********************************************");printf("\n\t\t\t请选择菜单号: 0-5...");scanf("%c",&choice);getchar();
if(choice=='1') InitLQue(&q);
else if (choice=='2'){printf("\n\t\t\t请输入需要插入的元素x的值:");scanf("%c",&x);getchar();
InsertLQue(&q, x);}
else if (choice=='3'){ExitLQue(&q, &x);}
else if (choice=='4')LenLQue(&q);
else if (choice=='5')ShowLQue(&q);
else if (choice=='0'){j=0;printf("\t\t\t程序结束!\n");}
else printf("\n\t\t\t输入错误!请重新输入!\n");
}
}

呵呵,也是啊,这位兄台心眼可不少啊?

不要,小心受骗啊!!!