回 帖 发 新 帖 刷新版面

主题:关于线形表的链式结构

typedef struct LNode{

    int data;

    struct LNode *next;

}LNode,*LkList;
谁能帮我解释一下这个结构体的含义,怎么前面有个LNode,后面还有一个,
还有那个*LkList是不是和LNode一样,为什么定义两个???

高人帮忙啦,越详细越好!

回复列表 (共4个回复)

沙发

typedef的使用:
typedef 已有的类型名 新的类型名;
例: typedef int INT;  
这时用INT可以表示int 如INT a; 和int a;是等价的。
对如下结构体定义来说,
typedef struct LNode{

    int data;

    struct LNode *next;

}LNode,*LkList;
已定义的类型是:

struct LNode{

    int data;

    struct LNode *next;

};
新的类型名有两个:LNode,*LkList;
前者是一个新结构体名就相当于系统为我们提供的
int float等类型,后者是一个指向这种结构体类型的指针类型。

板凳

http://www.programfan.com/club/showbbs.asp?id=191322
看看这里就好了

*LkList==typedef struct lnode * LkList;

也就是说,要使以后要定义个结构体lnode的指针变量,就不用写成struct lnode *p;
而可以直接写成 LkList p;

3 楼

噢!高手们就应该多解释一下这些看似简单的问题,要不,在此基础上的什么算法啊,我们初学的根本看不懂
谢谢啦!!!!

4 楼


那个next我不懂呀  它是什么样的指针呀  指响哪里

我来回复

您尚未登录,请登录后再回复。点此登录或注册