C语言链表?

来源:百度知道 编辑:UC知道 时间:2024/05/15 19:36:32
帮我翻译下.麻烦在每句旁边加上 /* */ ..
要详细的..麻烦了...搞得我我脑袋都大了..

#include "stdio.h"
#include "stdlib.h"
#define S struct Worker
#define LEN sizeof(S)
struct Worker
{
int num;
char name[20];
float pay;
S *next;
};
main ()
{
int i;
S *p,*q,*head;
p=q=head=(S*)malloc(LEN);
scanf ("%d%s%f",&p->num,p->name,&p->pay);
p=(S*)malloc(LEN);
scanf ("%d%s%f",&p->num,p->name,&p->pay);
q->next=p;
q=p;
p=(S*)malloc(LEN);
scanf ("%d%s%f",&p->num,p->name,&p->pay);
q->next=p;
q=p;
q->next=0;
p=head;
while (p!=0)
{
printf ("%d,%s,%0.1f\n",p->num,p->name,p->pay);
p=p->next;
}
}
书上的..哎..看不懂..

回_toby : 有很多你都没有写上去啊..那些关键的都没有写.麻烦补一下..

#include "stdio.h"
#include "stdlib.h" //头文件
#define S struct Worker
#define LEN sizeof(S) //宏定义结构体名字 长度
struct Worker //结构体
{
int num;
char name[20];
float pay;
S *next; //指向下一元素的指针,关键
};
main ()
{
int i;
S *p,*q,*head; //p新的节点,q用于插入新的节点,head头节点
p=q=head=(S*)malloc(LEN); //分配空间,读入
scanf ("%d%s%f",&p->num,p->name,&p->pay); //依次输入结构的 num name pay
p=(S*)malloc(LEN); //动态分配空间,新的节点
scanf ("%d%s%f",&p->num,p->name,&p->pay); //依次输入结构的 num name pay
q->next=p; //确定下一个元素指针,再次读入
q=p; //指向新的节点
p=(S*)malloc(LEN); //动态分配空间,新的节点
scanf ("%d%s%f",&p->num,p->name,&p->pay); //依次输入结构的 num name pay
q->next=p; //插入新的节点
q=p; //指向新的节点
q->next=0; //最后的节点的next==0
p=head; //把头节点的地址给 p