八月的時候在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語言中對指針這一部分理解不透徹。