C語言線性連結串列
線性表的鏈式儲存結構的特點
線性表的鏈式儲存結構的特點是用一組任意的儲存單元儲存線性表的資料元素(這組儲存單元可以是連續的,也可以是不連續的)。
因此為了表示每個資料元素與其直接後繼資料元素之間的邏輯關係之外,對一個資料元素來說,除了儲存本身的資訊之外還需儲存一個指示其後繼的資訊。
結點則是這兩部分資訊組成資料元素的儲存映像。一個節點包含了兩個域,分別為資料域和指標域。
資料域是儲存資料元素資訊的域。
指標域則是儲存直接後繼儲存位置的域。
指標域中儲存的資訊稱作指標和鏈。n個結點鏈構成一個連結串列,即為線性表的鏈式儲存結構。如果一個連結串列中的一個結點只包含一個指標域,故又稱其為線性連結串列或單連結串列。
頭指標
整個連結串列的存取應從頭指標開始進行,頭指標指示連結串列中的第一個結點的儲存位置。指標為資料元素之間的邏輯關係的映像,則邏輯上相鄰的兩個資料元素其儲存的物理位置不要求緊鄰,由此,這種儲存結構為非順序映像或鏈式映像。
單連結串列可由頭指標惟一確定,在C語言中可用結構指標來描述。
// 線性表的單連結串列儲存結構
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,* Linklist;
假設La是Linklist型的變數,則La為單連結串列的頭指標,它指向表中第一個結點。若La為“空”, 即(La = NULL)
,則所表示的線性表為空表,長度n為“零”。有時候我們可以在單連結串列的第一個結點之前附設一個結點,稱之為頭結點。頭結點的資料域可以不儲存任何資訊,也可儲存如線性表的長度等類的附加資訊,頭結點的指標域儲存指向第一個結點的指標。
相關文章
- 雙向連結串列介面設計(C語言)C語言
- c/c++ 線性表之單向連結串列C++
- 線性表——連結串列
- C語言單向連結串列的增刪操作C語言
- “c語言+結構體+連結串列”實現名片系統C語言結構體
- 用c語言實現資料結構——單連結串列C語言資料結構
- 資料結構——單連結串列介面實現(C語言)資料結構C語言
- Go 語言 結構體連結串列Go結構體
- c/c++ 線性表之雙向迴圈連結串列C++
- c/c++ 線性表之單向迴圈連結串列C++
- c語言單向連結串列逆轉實現方法C語言
- 單向迴圈連結串列介面設計(C語言)C語言
- 詳解雙向連結串列的基本操作(C語言)C語言
- 環形連結串列_相交連結串列_多數元素(java語言)Java
- C語言資料結構:雙向連結串列的增刪操作C語言資料結構
- 線性結構 陣列與連結串列陣列
- 資料結構-線性表、連結串列資料結構
- 資料結構_連結串列的原理與應用1_單連結串列(基於C語言實現)資料結構C語言
- 【資料結構】線性表-單連結串列資料結構
- 前端資料結構--線性結構-連結串列前端資料結構
- C語言資料結構:雙向迴圈連結串列的增刪操作C語言資料結構
- C語言資料結構:單向迴圈連結串列的增刪操作C語言資料結構
- 【資料結構】用C語言實現單連結串列及其常見操作資料結構C語言
- C語言實現雙連結串列的(終端)新增和查詢C語言
- c語言單連結串列的實現,包括連結串列的建立、插入、查詢、刪除、列印、長度計算C語言
- 單向連結串列————遍歷、查詢、插入結點 (基於C語言實現)C語言
- 雙向迴圈連結串列及各功能函式設計(C語言)函式C語言
- 資料結構_連結串列_單向迴圈連結串列 & 雙向連結串列的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- 資料結構__連結串列_單連結串列的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- (c語言實現)刪除有序連結串列中重複出現的元素C語言
- 2-2 學生成績連結串列處理 (20分)——C語言實現C語言
- 【資料結構與演算法學習】線性表(順序表、單連結串列、雙向連結串列、迴圈連結串列)資料結構演算法
- C語言資料結構(8)--棧 後進先出線性表C語言資料結構
- 資料結構筆試題——基於C語言的連結串列功能函式實現資料結構筆試C語言函式
- 資料結構與演算法 | 線性表 —— 連結串列資料結構演算法
- Go 語言介面及使用介面實現連結串列插入Go
- 資料結構_連結串列_雙向迴圈連結串列的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言
- 資料結構_連結串列_單向迴圈連結串列的初始化、插入、刪除、修改、查詢列印(基於C語言實現)資料結構C語言