求C语言高手帮写一个读取文件数据并存入一链表的代码

数据文件data.txt格式如下
1,aaa,90
2,bbb,95
3,ccc,100
...,...,...
结构体如下
typedef struct Datas {
char data[100];
struct Datas *nrow; // 同一行中下一个数据
struct Datas *ncol; // 同一列中下一个数据
}DATA;
链表格式为
1→aaa→90

2→bbb→95

3→ccc→100

。。。
求高手指导额,我想了好久都想不出该怎么建立这样的链表,好的再加分

第1个回答  2011-12-18
呵呵,用个Union就好,数据单元第一个是整型,第二个是字符型数组,第三个是整型,你把这个数据单元设为Union即可。这样所有的结构体就统一了。建链表,应该是很简单的事情,你把每列看作一个链表即可,每次循环读一行,往每个列链表中增加一个尾成员,同时将这三个节点设置为一个横向链表串起来。
第2个回答  2011-12-20
int ReadData(char* fileName, DATA* head)
{
FILE *fp;
DATA* currentRow;
DATA* row1, row2, row3;
if ((fp = fopen(fileName, "r")) == NULL)
{
printf("Cannot open %s!", fileName);
return 1;
}

row1 = (DATA*)malloc(sizeof(DATA));
row2 = (DATA*)malloc(sizeof(DATA));
row3 = (DATA*)malloc(sizeof(DATA));
memset(row1, 0, sizeof(DATA));
memset(row2, 0, sizeof(DATA));
memset(row3, 0, sizeof(DATA));

currentRow = row1;

while (fscanf(fp, "%s,%s,%s", &(row1->data), &(row2->data), &(row3->data)) != EOF)
{
currentRow = row1;
row1->nrow = row2;
row2->nrow = row3;
row1 = (DATA*)malloc(sizeof(DATA));
row2 = (DATA*)malloc(sizeof(DATA));
row3 = (DATA*)malloc(sizeof(DATA));
memset(row1, 0, sizeof(DATA));
memset(row2, 0, sizeof(DATA));
memset(row3, 0, sizeof(DATA));

currentRow->ncol = row1;
}

delete row1;
delete row2;
delete row3;
row1 = NULL;

return 0;
}本回答被提问者采纳
第3个回答  2011-12-18
C语言我不懂怎么写,我只有思路(办法有好多,你先可以读取它一行,把这行读出来以后用分割符隔开,用数组来接收,会有三个数组分别为A(0),A(1),A(2),后面的就是把A(0),A(1),A(2)加起来,中间用“→”
相似回答