鍊錶中 的 頭指標 和 頭結點 是不一樣的

2021-06-05 09:58:59 字數 1712 閱讀 9470

謝謝 黃隊長(

) 的 指導, 讓困擾我的這個問題:「頭結點是什麼?頭指標是什麼?」 得以解決。

// 鍊錶中的 結點的 定義

typedef struct node

int item;

struct node* next;

}node;

// 鍊錶 本身的 結構 的定義

typedef struct link

node * head;

}link_type;

由 以上的 定義可以得出:

/********************** 沒用 指標變數的格式 如下**************************/

node node_head;   // 定義 乙個 結點, 這個 就可以看做是 頭結點,頭結點必須是鍊錶中的第乙個結點,且它的資料域中一般存放的是鍊錶的長度(類似陣列的長度)

node_head.item = 0;   //  頭結點 的 資料域 沒有 實際 的 意義, 即 不存 有用的資料, 我這裡初始化為0, 也可以初始化為其它整形資料。

node_head.next = null;  //  頭結點 的 指標域 初始化為空

link_type seqlink; // 定以 乙個 鍊錶

seqlink.head = &node_head; // 頭指標 初始化 為 指向 頭結點。頭指標 是指向頭結點 或 指向鍊錶中的第乙個結點(在沒有頭結點是)。

/********************** 用 指標變數的格式 如下**************************/

node *node_head = (node*)malloc(sizeof(node) * 1);   // 別忘分配空間。

if ( null == node_head) exit(1);  

node_head->item = 0;   //  頭結點 的 資料域 沒有 實際 的 意義, 即 不存 有用的資料, 我這裡初始化為0, 也可以初始化為其它整形資料。

node_head->next = null;  //  頭結點 指標變數 的 指標域 初始化為空

link_type *seqlink = (link_type*)malloc(sizeof(link_type) * 1); // 定以 乙個 鍊錶 指標

if ( null == seqlink) exit(1); 

seqlink->head = node_head; // 頭指標 初始化 為 指向 頭結點。頭指標 是指向頭結點 或 指向鍊錶中的第乙個結點(在沒有頭結點是)。

總結:1.頭指標 是指向頭結點 或 指向鍊錶中的第乙個結點(在沒有頭結點是)。

2.頭結點必須是鍊錶中的第乙個結點,且它的資料域中的資料無用

3. 謝謝 黃隊長(

的 指導!

4.以上是我的理解~如有錯誤和不妥之處,還請大家批評指導~謝謝!!!~

以上~~~

我們不一樣之陣列和指標的差別

陣列 陣列是用於儲存多個相同型別資料的集合。陣列 只能乙個乙個元素的賦值或拷貝 指標 指標變數可以相互賦值 陣列 陣列所佔儲存空間的記憶體 sizeof 陣列名 陣列的大小 sizeof 陣列名 sizeof 資料型別 指標 在 32 位平台下,無論指標的型別是什麼,sizeof 指標名 都是 4。...

雲主機和雲主機是不一樣的

雲主機與雲主機是不一樣的,看到這句話是不是一臉懵逼,不知道是什麼情況?其實真正懂行的人就不會迷惑,因為雲主機與雲主機之間確實有很大的區別,姑且不論不同idc服務商之間的區別,僅僅是在架構 平台 軟體等方面,雲主機就可以分出iaas paas 和 saas 三種不同的型別。那麼這些專業知識應該如何分辨...

父類指標的步長和子類指標的步長是不一樣的

當用父類指標或者引用指向子類物件時,可以發生多型 是因為有vptr指標和虛函式表的存在 但是這個指標和子類指標的步長時不一樣,具體看如下 特別注意看注釋。如下 include using namespace std 結論 多型是用父類指標指向子類物件 和 父類步長 是兩個不同的概念 class pa...