鏈式儲存結構(鍊錶)
顧名思義,就是具有線一樣的特質的表。表的元素像直線一樣排列。
即「把所有資料用一根線兒串起來,再儲存到物理空間中」。
例如在學生的成績表中,乙個學生的姓名、學號、成績資訊為乙個結點,然後有乙個開始結點(它的前面沒記錄)和乙個終端結點(它的後面沒記錄)。這種邏輯結構稱為線性表,請注意,是邏輯結構。
1.集合中必存在唯一的乙個「第一元素」。一般使用陣列實現線性表的儲存,可以使用資料索引進行查詢,每個元素都是固定位置。2.集合中必存在唯一的乙個 「最後元素」 。
3.除最後乙個元素之外,均有唯一的後繼(後件)。
4.除第乙個元素之外,均有唯一的前驅(前件)。
便於查詢
得益於順序儲存結構,我們可以根據具體位置直接查詢到我們所需要的值。
節省邏輯結構空間
不需要為結點之間的邏輯關係分配額外的儲存空間。
移動大量元素
就像排隊有人插隊一樣,插入乙個結點,則後面的結點全部需要往後移。
儲存空間不能充分利用
因為需要預分配儲存空間,所以分配空間時候一般按照最大分配,這樣讓儲存空間不能得到充分利用。
難以擴充
當發現表的儲存空間不夠的時候,難以對其進行擴充,只能重新分配並複製。(ps:後有動態陣列可解決這個問題,但是犧牲了效率)
為了解決順序儲存結構刪除插入效率低的弊病,分為兩個域,乙個資料域,乙個指標域。資料域就是存資料的地方,指標域就是存指標的地方,指標域相當於門牌號,用於標明下乙個結點的位置。
刪除和插入不需要移動位置,只需要更改指標域即可。時間複雜度o(1),如果需求要求多次刪除插入就可以使用這個。
查詢只能乙個乙個結點去遍歷,效率低。
建議使用檢視大圖檢視
簡短不疲倦,歡迎點讚
小步前進之資料結構基礎
物理結構 本文是對學習知識的總結,基於現有知識的基礎上加上個人理解,如果有侵權,必刪。工作中crud了2年,是時候從頭開始沉澱,一步乙個腳印,做好乙個合格的程式設計師,在 的世界裡起舞。要了解資料結構,首先使用文字拆分法,即資料 結構,那什麼是資料呢?其實,資料很好理解,你的家族就可以理解為乙個資料...
mysql 線性表 資料結構之線性表
概要 參考 大話資料結構 把常用的基本資料結構梳理一下。線性表定義 線性表 list 零個或多個資料元素的有限序列。若將線性表記為 a 1,cdots,a a i,a cdots,a n 則表中 a 領先於 a i a i 領先於 a 稱 a 是 a i 的直接前驅元素,a 是 a i 的直接後繼元...
資料結構之線性表
從現在開始,我們開始討論如何實現一些常用的資料結構和其中的一些經典演算法.等把資料結構講完了.我可能會繼續討論vc 的程式設計只是以及vs平台下的c c 開發等等.呵呵.我們進入正題吧.我在這裡就只實現線性表的連表結構.當然了,這裡實際上包含了好多知識.我希望大家在引用的時候.一定要領悟裡面的一些變...