資料結構 鍊錶

2021-10-07 02:38:22 字數 1380 閱讀 8021

通過一組任意的儲存單元來儲存線性表中的資料元素,為了建立資料元素之間的線性關係,對於每個鍊錶的結點,除了存放資料以外,還要存放乙個指向後繼元素的指標

typedef

struct lnodelnode,

*linklist;

單鏈表解決了順序表需要大量連續儲存單元的缺點,但是單鏈表附加指標域,也存在浪費空間的缺點。

為了操作方便通常會在第乙個節點之前新增乙個節點,稱為頭節點,頭節點的資料域可以不設定任何資訊,也可以記錄表長等資訊。

引入頭節點的兩個優點:

1.由於第乙個資料節點的位置被存放在頭結點的指標域中,所以第乙個元素和表的其他元素操作一致。

2。無論鍊錶是否為空,其頭指標都指向頭結點的非空指標,因此空表和非空表的處理就得到了統一。

linklist list_headinsert

(linklist &l)

return l;

}

linklist list_tailinsert

(linklist &l)

r->next=

null

;return l;

}

lnode *

getelem

(linklist l,

int i)

return p;

}

lnode *

locateelem

(linklist l,elemtype e)

lnode *

insert

(linklist &l,

int i,elemtype e)

lnode *

insert2

(linklist &l,lnode *p)

為了克服單鏈表不能訪問前驅結點的缺點,引入了雙鏈表,雙鏈表中有prior next兩個指標,分別指向前驅結點和後繼結點

結構體描述

typedef

struct dnodednode,

*dinklist;

迴圈鍊錶和單鏈表的區別在於,表中的最後乙個結點的指標不是null,而是改為了頭結點,整個鍊錶形成乙個環

迴圈的雙鏈表

靜態鍊錶借助陣列來描述線性表,通過陣列下標記錄鍊錶位置,每個結點的next指標指向陣列下標

結構體描述

typedef

struct

slinklist [mxasize]

;

資料結構 鍊錶

鍊錶 what 就是一張鏈式儲存的表,是一種資料結構,是基礎,所以還是不要想有什麼用。具體呢?在c中就用結構體實現物件描述,然後通過函式來實現各個基本操作 c 則用類來表述,c中的結構體就可以看成c 中的類,然後通過類封裝各個操作步驟。這些操作實現後就需要 來測試,號稱demo,就是main函式裡面...

資料結構 鍊錶

鍊錶中的資料是以節點來表示的,每個結點的構成 元素 資料元素的映象 指標 指示後繼元素儲存位置 元素就是儲存資料的儲存單元,指標就是連線每個結點的位址資料。鍊錶的結點結構 data next data域 存放結點值的資料域 next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 以 結點的序列 ...

資料結構 鍊錶

一般的建立線性鍊錶有兩種 1.正序法 需要三個指標,head作為頭指標,pre作為前乙個指標,cur作為當前指標用來建立空間 2.倒序法,利用指標的插入,只需要兩個指標,不斷的往頭指標後插入新空間,不過插入的越早,離頭指標越遠,也就越後面輸出 1.線性鍊錶的建立及查詢刪除 include inclu...