注册 登录
编程论坛 数据结构与算法

数据结构 构造一个空的链表.我写了个,大家看下,然后帮我写一个好的.我好参考..谢谢了...

andytony1234 发布于 2010-01-26 20:41, 1433 次点击
#include<stdio.h>
#include<stdlib.h>
#define SIZE 30
    struct node
    {
        char name[10];
        int  num;
        float score;
        struct node *next;
    }node,*p;
    InitList()
    {
        if((node.next=malloc(SIZE))==NULL)
            printf("malloc error");
        return(node);
    }
3 回复
#2
shiyongdong2010-02-21 07:02
如果我没有猜错的话,你想建立一个链表,包含的信息有4项比如:
学生的姓名
学生证号码
学生成绩
以及一个指向下个链表格子的指针,
我觉得在你的fonction of initialization 中我觉得你要初始化前3项信息
我的建议是:
void InitList()/*your fonction must contain a return value , here , we just realize an action of creation , so we put a void */

{
   for(int i=0; i<N;i++)
   {
     p=malloc(sizeof(node));/*allocation of memory for just a node*/
     p->name[10]=" ";/*put a global string for initization please*/
     p->num=0;/*idem*/
     p->score=0.0;/*idem*/
     p=p->next;/*link to the next node*/
    }
    p->next=NULL; /*last pointer of node point to NULL!*/
  }
希望我的代码对你有帮助
#3
asd4510060712010-02-21 17:23
错了,结构体只定义内部数据的组合形式,要先定义变量才能用node.next其它的都可以,难为我用手机敲的难受
#4
cnfarer2010-02-22 07:16
struct node
{
    char name[10];
    int  num;
    float score;
    struct node *next;
}node,*p;
void InitList()
{
    if((node.next=(struct node *)malloc(sizeof(struct node)))==NULL)
        printf("malloc error\n");
    else
        printf("malloc ok\n");
}
int main()
{
    InitList();
    free(node.next);
    return 0;
}
1