数据结构链表的疑问

来源:百度知道 编辑:UC知道 时间:2024/04/30 04:16:15
这是数据结构里定义链表的一段类C代码
typedef struct Lnode {
elemtype data;
struct Lnode * next;
} LNode,* LinkList;

帮我解释一下这个代码,尤其是 LNode,* LinkList; 分别表示什么。

按我的理解。。
首先,
链表的每个节点都是由一个数据类型和一个指向下一个节点的指针构成的。
所以把这个节点定义成一个结构体Lnode。。
而结构体成员就是这两个类型。。
至于struct Lnode *next就像二楼那位仁兄说的嵌套结构体定义。。
因为下一个节点也是这样的结构体。。
还有*LinkList就是表示整个链表。。
其值是指向链表的首地址。也就是第一个节点的地址。。
都是一样的结构体。。

typedef struct Lnode {
elemtype data;
struct Lnode * next;
}
这是结构体的声明, LNode,* LinkList; 这两个是变量的实例

合起来就是说定义了两个此结构体的变量,当然,一个是指针

typedef struct Lnode {
elemtype data;
struct Lnode * next;
}
这是结构体的声明, LNode,* LinkList; 这两个是变量的实例合起来就是说定义了两个此结构体的变量。
elemtype是变量data的数据类型当然c中没有这样的类型,这是个伪代码,意思是elemtype可以用int、double、char等代替,struct Lnode * next;结构体中又定义结构体是结构体的嵌套。