線性表的鏈式存儲,下面這段代碼typedef struct Node{
ElemType e;
struct Node *next;
}Node,*LinkList;LinkList p和Node p有什么區別
2 回答

九州編程
TA貢獻1785條經驗 獲得超4個贊
如果你理解int a
與int *a
的區別,再理解了typedef int ElemType
你就可以理解上面例子。
typedef struct Node{ ElemType e; struct Node *next; } Node, *LinkList;
首先從外層看,typedef [] ***
就是把[]
中的類型重新定義成以***
表示;
例子中的意思就是說,中間的結構體類型變量struct Node{***}
在這里可以用Node
和*LinkList
來表示了。并且,
當需要聲明Node
變量時,就可以用 Node p
來聲明;等同于 struct Node p
當需要聲明Node
指針變量時,就可以用LinkList p
來聲明;等同于 struct Node *p
再看中間的結構體定義:
定義了一個別名為Node
的結構體類型:
這個結構體由一個ElemType
類型的變量e
和一個當前結構體類型指針 *next
構成
而后你聲明的每一個該結構體類型的變量中都包含這兩個元素。

慕雪6442864
TA貢獻1812條經驗 獲得超5個贊
LinkList
是指針類型,Node
是結構體類型.LinkList
指針類型的變量的使用可以用 (*p).e
或者 p->e
,Node
類型變量使用可以用 p.e
.
- 2 回答
- 0 關注
- 724 瀏覽
添加回答
舉報
0/150
提交
取消