关于C数据结构队列的一个问题
写一个C语言的信息管理程序,选用队列结构,输入一批人员数据(姓名 学号 身高......)可添加 删除数据 并查看整体数据
想问一下,能不能定义一个结构体变量,并给变量赋值(姓名 学号 身高等)
然后将这个结构体变量 作为一个参数, 入队 出队 并显示
#include<stdio.h>
struct STUDENT
{
int id[10];
int name[10];
int height[3];
}stu;
typedef struct queuenode
{
int data;
struct queuenode *next;
}queuenode;
typedef struct
{
queuenode *front,*rear;
}linkqueue;
void InX()
{
printf("\t请输入学生的数据");
printf("\t学号:");
scanf("%s",stu.id);
printf("\t姓名:");
scanf("%s",stu.name);
printf("\t身高:");
scanf("%d",&stu.height);
}
void InQueue(linkqueue *q)
{
int x;
queuenode *p=new queuenode;
printf("\n\t\t请键入一个整数: ");
p->data=x;
p->next=NULL;
if(q->front==NULL)
q->front=p;
else
q->rear->next=p;
q->rear=p;
if(p)
printf("\n\t\t %d 进队成功! ",x);
}
int OutQueue(linkqueue *q,int *v) //出队函数
{
queuenode *p;
if(q->front==NULL)
return 0;
else
{
p=q->front;
*v=p->data;
q->front=p->next;
if (q->front==NULL)
q->rear=NULL;
delete p;
return 1;
}
}
void ShowQueue(linkqueue *q) // 显示队列函数
{
queuenode *p=q->front;
if(p==NULL)
printf("\n\t\t 列队为空!\n");
else
{
printf("\n\t\t列队元素为: ");
while(p!=NULL)
{
printf("%6d",p->data);
p=p->next;
}
printf("\n");
}
}
void main()
{linkqueue *q=new linkqueue;
int val,i=1;
char w,choice;
q->front=q->rear=NULL;
while(i)
{
printf("\n");
printf("\n\t\t 列队子系统 ");
printf("\n\t\t****************************");
printf("\n\t\t* 1--------写入 *");
printf("\n\t\t* 2--------入队 *");
printf("\n\t\t* 3--------出队 *");
printf("\n\t\t* 4--------显示 *");
printf("\n\t\t* 0--------返回 *");
printf("\n\t\t****************************");
printf("\n\t\t 请选择 (0--3):");
scanf("%c",&choice);
getchar();
switch(choice)
{
case '1':
InX();
case '2':
InQueue(q);
break;
case '3':
if(OutQueue(q,&val)==0)
printf("\n\t\t列队为空!\n");
else
printf("\n\t\t出队元素为: %d",val);
break;
case '4':
ShowQueue(q);
break;
case '0':
i=0;
break;
default:;
}
if(choice=='1'||choice=='2'||choice=='3')
{
printf("\n\n\t\t 按回车键继续,按任意键返回主菜单\n");
w=getchar();
if (w!='\xA')
{
i=0;
}
}
}
}
-------------------------
哪位大侠能帮我完善下