八月的时候在b站看王道的数据结构,对LNode和*LinkList两者表示不能理解,但是当时也没多管。最近开始复习之前的坑,又看到了这个代码,就搜了一下网上的资源。
typedef struct LNode{ ElemType data; struct LNode *next; }LNode, *LinkList;
这一部分当时没弄懂,只知道LNode多用来表示结点,LinkList强调头结点,表示整个链表。
实际上,这一部分代码实际上等价于
typedef struct LNode LNode; //将结构体重命名为LNode typedef struct LNode *LinkList; //将结构体指针重命名为LinkList
LNode是一个具象的结构体类型,指向的是包含某个数据类型的数据域和指针域的结构体类型。
而LinkList是LNode的指针类型,它占用一定内存空间,内存空间中的值是一个LNode类型结构体的地址。相比LNode,它显得有些“虚无缥缈”。
其实说到底还是之前的C语言中对指针这一部分理解不透彻。