typedef int ElemType;typedef struct Node{ElemType data;struct Node *next;}Node;typedef struct Node *LinkList;
2 回答

素胚勾勒不出你
TA貢獻1827條經驗 獲得超9個贊
首先,應該是要建立一個鏈表。那么你結構體內部必須要有一個指針指向下一個節點的地址。而結構體內部的 struct Node *next;
就充當了這一個角色

躍然一笑
TA貢獻1826條經驗 獲得超6個贊
不知道你的疑惑是不是 為什么在Node還沒有定義完的情況下我們就能用Node *next作為它的元素?
如果你是問這個的話,我倒是可以說說我的看法。因為c語言中指針都是占32bit或者64bit的數據,在同一個系統中,指針占用的內存空間都是一樣的。所以在編譯階段,
typedef struct Node{ ElemType data; struct Node *next; }Node;
和
typedef struct Node{ ElemType data; xxx *next; }Node;
是等效的,struct Node *next;
和xxx *next;
都是一個占32bit或者64bit的數據類型。只有在后面使用Node后,struct Node *next;
和xxx *next;
才會有區別。
你可以試試這樣,
typedef struct Node{ ElemType data; struct Node next; }Node;
就是next不是指針,而就是Node。這就會報錯
error: field ‘next’ has incomplete type
因為這個時候Node并沒有定義完,編譯器都不知道要給他分配多少內存空間。
如果你想問的不是這個,那就忽略我的回答吧。
添加回答
舉報
0/150
提交
取消