int De_LQueue(LQueue &q,int &x)
{
Qnode *p;
if(q.rear==q.front)
return 0;
p=q.front->next;
x=p->data;
q.front->next=p->next;
if(q.front->next==NULL)
q.rear=q.front;
free(p);
return 1;
}
void Display_LQueue(LQueue &q)
{
Qnode *p;
p=q.front->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
int main(int argc, char* argv[])
{
int i,x,y,cord;
LQueue q;
Init_LQueue(q);
printf("初始化\n建立初始链队列如下: \n");
for(i=1;i<=4;i++)
En_LQueue(q,i);
Display_LQueue(q);
do
{
printf(" 主菜单 \n");
printf(" 1 入队 \n");
printf(" 2 出队 \n");
printf(" 3 结束程序 \n");
printf("------------------------------------------\n");
printf("请输入您选择的菜单号<1, 2, 3>:");
scanf("%d",&cord);
switch(cord)
{
case 1:
{
printf("请输入入队元素!");
scanf("%d",&y);
En_LQueue(q,y);
printf("该元素入队后得到的新队列如下: ");
Display_LQueue(q);
}break;
case 2:
{
if(De_LQueue(q,x)==0)
printf("队空,不能出队!\n");
else
{
printf("出队元素为: %d\n",x);
printf("出队后得到的新队列如下: ");
Display_LQueue(q);
}
}break;
case 3:
{
exit(0);
}break;
default:printf("输入有误!");
}
}while(cord<=3);
}