// 声明一个struct LNode的结构体类型,它的成员有:data数据域,next指针域,然后用typedef对这个结构体类型进行重命名
typedef struct LNode {
	int data;
	struct LNode *next;
}LNode,*LinkList;

等同于:

// LNode是一个结构体名,强调节点,相当于将struct LNode结构体类型重命名为LNode
// *LinkList是一个指针类型,强调单链表,相当于将struct LNode * 重命名为LinkList

typedef struct LNode {
	int data;
	struct LNode *next;
}LNode;		
// 以后就用LNode表示struct LNode

typedef struct LNode {
	int data;
	struct LNode *next;
}*LinkList;		// 以后就用LinkList表示struct LNode *

例如:声明一个struct LNode结构体类型的指针变量L,写法是:

struct LNode *L;

重命名后,就可以写成:

LinkList L;

由于struct LNode结构体类型也被重命名为LNode,所以指针变量L其实也可以写成:

LNode *L;

那么此时就可以把LinkList和LNode *看出等价的了,教材里有时候写LinkList,有时候写LNode *,其实挺让人疑惑的,可以把LNode *看作是强调节点,LinkList看作是强调单链表

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐