1. 程式人生 > 其它 >關於單鏈表結構體定義結點時 LNode *LinkList的理解

關於單鏈表結構體定義結點時 LNode *LinkList的理解

技術標籤:資料結構與演算法連結串列單鏈表c語言資料結構指標

typedef struct LNode{
	ElemType  data;	//資料域
	struct LNode *next;	//指標域
}LNode, *LinkList

先說結論,這個就可以直接理解為
在這裡插入圖片描述
第一個是便於定義變數的型別為LNode,如果沒有使用typedef,定義時就需要寫 struct LNode Lnode;
第二個是便於定義指向LNode這個型別的指標

其還有一個作用:
LNode * 一般強調的是返回的是一個結點
LinkList 一般強調的是這是一個單鏈表
在這裡插入圖片描述
比如在上面這個栗子中

舉個栗子:
在表示一個單鏈表時,只需宣告一個頭指標L,指向單鏈表的第一個結點(也就是頭結點)

Lnode *L //宣告一個指向單鏈表第一個節點的指標
LinkList L //和上面功能相同

可以看到,很明顯用LinkList使得程式碼可讀性更強了。

typedef的作用就是為型別新增別名,可以增加程式碼的擴充套件性,特別是在有時候型別需要用通用的ElemType去泛指的時候,其就達到了一種解耦的效果,這裡還需要注意的是其需要與結構體變數區分開來,結構體變數並不是定義的別名.

例如,對於這個程式碼

 struct LNode{
	ElemType  data;	//資料域
	struct LNode *next;	//指標域
}LNode

就等於 Struct LNode LNode; 等同於定義了一個LNode型別的變數,名為 LNode.