單鏈表的結構體定義與聲明

在用代碼描述單鏈表之前,我們需要定義一個結構體來描述單鏈表的結點。


typedef struct Node
{
    ElemType data;
    struct Node *next;
}Node;
typedef struct Node *LinkList; /* 定義LinkList */

B:從這個結構定義中,我們知道,結點由存放數據元素的數據域存放後繼結點地址的指針域組成。


A:假設p是指向線性表第i個元素的指針,則該結點ai的數據域我們可以用p->data來表示,p->data的值是一個數據元素,結點ai的指針域可以用 p->next來表示,p->next的值是一個指針。p->next指向誰呢?當然是指向第i+1個元素,即指向ai+1的指針。(如圖所示)


B:關於結構體 struct Node *next; 這麼一句代碼,爲什麼要這麼寫?我寫成 int *next 行不行?


A:不行的。next是指向下一個Node,所以其類型必須是Node。int *next 只能指向int,而不能指向Node。所以必須定義爲 Node 類型,但是 Node 是結構體,所以前面還得加上個 struct。
————————————————
版權聲明:本文爲CSDN博主「雲天明」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/J_K_Christ/article/details/45015641

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章