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