資料結構之鍊錶 易混淆概念

2021-09-10 10:28:03 字數 1310 閱讀 1521

節點:節點被認為是乙個實體,有處理能力,比如網路上的一台計算機

而結點則是乙個交叉點:打個結,做個標記,在一般演算法中應該叫結點

開始結點是指鍊錶第乙個結點,沒有直接前驅

頭指標是指向開始結點的指標(沒有頭結點的情況下).乙個單鏈表可以由其頭指標唯一確定,一般用頭指標來命名單鏈表

頭結點是在鍊錶的開始結點之前附加乙個結點,有了頭結點之後頭指標指向頭結點.不論鍊錶是否為空,頭指標總是非空,而且頭結的設定使得對鍊錶的第乙個位置的操作與在表中的其他位置操作一致.

定義乙個鍊錶:

struct node;

data為資料域,用於儲存資料;

*next為指標域

(鍊錶是結點的集合,0個或多個結點組成乙個鍊錶,

結點的結構:資料域(記錄資料),指標域(指向下乙個結點)

鍊錶的結構;1.若干節點依次相連

2.有頭指標,指向鍊錶中的第乙個結點,初始情況下頭指標為null;

3.有頭節點。頭接點是只有指標域的特殊結點,指標域存放第乙個結點的指標。初始化情況下鍊錶只有頭結點,頭結點的指標域存放指向null的指標

4.有頭結點和尾結點,初始化情況下鍊錶只有頭結點和尾結點,尾結點指向null。

型別4有點像棧的結構,頭結點為base,尾結點為top。

單鏈表定義:當乙個序列中只含有指向它的後繼結點的鏈結時,就稱該鍊錶為單鏈表。

struct node

;typedef struct node lnode;

typedef struct node *linkedlist;

struct node first;

struct node *head = &first;

這個head指標就是頭指標。

這個頭指標的意義在於,在訪問鍊錶時,總要知道鍊錶儲存在什麼位置(從何處開始訪問),由於鍊錶的特性(next指標),知道了頭指標,那麼整個鍊錶的元素都應該能夠被訪問,也就是說頭指標是必須存在的。

頭指標:*指向鍊錶第乙個結點的指標,具有標識作用,貫以鍊錶的名稱,無論鍊錶是否為空,頭指標均不為空,是鍊錶的必要元素

頭結點是為了操作的統一和方便確立的,其資料域一般無意義,首元結點就是第乙個元素的結點,它是頭結點後的第乙個結點。

頭結點不是鍊錶所必需的。

沒有頭結點的程式

#include

struct node;

int main(void)

return 0;

}=和==區分:

賦值和比較的區別

node *p=null定義了乙個node型別的結構體指標,並初始化為空,避免野指標的出現,其實null就是字串「\0",就是為空的意思。

資料結構 表之煉表

頭插法建立 尾插法建立 顯示 銷毀 include include using namespace std typedef int elemtype typedef struct lnode linklist void createlinklistf linklist l,elemtype a,in...

資料結構之鍊錶

頭結點 第乙個有效結點之前的那個結點 頭結點並不存有效資料 加頭結點的目的主要是為了方便對鍊錶的操作 頭指標 指向頭結點的指標變數 尾指標 指向尾節點的指標變數 如果希望通過乙個函式對鍊錶進行處理,只需要乙個引數 頭指標 首先要定義乙個單鏈表儲存結構 然後建立乙個空表,即初始化,我寫的這個提前設定好...

資料結構之鍊錶

鍊錶是一種基本的資料結構型別,它由乙個個結點組成。每乙個結點包括乙個資料的儲存和乙個指向下乙個結點的引用。在這個定義中,結點是乙個可能含有任意型別資料的抽象實體,它所包含的指向結點的應用顯示了它在構造鍊錶之中的作用。和遞迴程式一樣,遞迴資料結構的概念一開始也令人費解,但其實它的簡潔性賦予了它巨大的價...