首頁 常見問題 線性表的鍊式儲存結構

線性表的鍊式儲存結構

Jun 04, 2019 am 09:40 AM

對於順序結構的缺點,我們有沒有什麼好的解法呢?

我們今天要介紹的線性表的鍊式儲存結構就可以很好的解決順序結構的缺點,一起來看。

鍊式儲存結構,又叫連結儲存結構。在電腦中用一組任意的儲存單元儲存線性表的資料元素(這組儲存單元可以是連續的,也可以是不連續的).

線性表的鍊式儲存結構

#基本介紹

它不要求邏輯上相鄰的元素在物理位置上也相鄰。因此它沒有順序存儲結構所具有的弱點,但也同時失去了順序表可隨機訪問的優點.

特點

1、比順序儲存結構的儲存密度小(鍊式儲存結構中每個結點都由資料域與指標域兩部分組成,相比順序存儲結構增加了存儲空間)。

2、邏輯上相鄰的節點物理上不必相鄰。

3、插入、刪除靈活 (不必移動節點,只要改變節點中的指標)。

4、查找節點時鍊式儲存要比順序儲存慢。

5、每個節點由資料域和指標域組成。

6、由於簇是隨機分配的,這也使資料刪除後覆蓋幾率降低,恢復可能會提高。

推薦課程:C語言教學

線性表的最後一個元素是沒有直接後繼的,所以在鍊式儲存中,我們將最後一個結點的指標域設定為null.

下面我們來看單鍊錶的具體程式碼實現

typedef struct LNode{     
    ElemType data;          //数据域    
    struct LNode *next;     //指针域,用来指向本节点的直接后继
 }LNode,*LinkList;           //定义节点,以及头指针
登入後複製

 很多同學分不清頭指針,頭結點,以及第一個結點之間的關係和區別,我們下面簡單地區分下。

頭指標:是指向鍊錶的指針,如果鍊錶有頭結點,它會指向頭結點

頭結點:第一個結點之前的一個輔助結點,其next指向第一個結點

第一個結點:就是一個結點,data變數存放第一個數據,next指標變數指向第二個結點

線性表的鍊式儲存結構

#這裡要注意的就是頭指標是一個鍊錶的必要元素,而頭結點卻不是,那麼頭結點存在的意義是什麼呢?

個人的理解就是讓第一個結點的插入操作和刪除操作和後面結點的操作一致,否則我們在修改第一個結點的時候,就需要修改頭指標。

如果沒有頭結點,頭指標直接指向第一個結點。

以上是線性表的鍊式儲存結構的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)