線性表
概念:
定義線性表為
n(n>=0)
個資料元素的乙個有限的序列。記為
l = ( a1,
…, ai,
ai+1, … an
)。其中
l是表明,
ai是表中的資料元素,是不可再分割的原子資料,也可以稱為結點或表項。
n是表中表象的個數。
性質:除第乙個元素外,其他元素都有乙個且僅只有乙個前驅;除了最後元素外,其他元素都有乙個且僅只有乙個後繼。
基本操作:
儲存方式:
順序儲存結構:
順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。
查詢:順序儲存結構容易定位元素,時間複雜度o(1)。
刪除和插入:插入/刪除最後乙個元素,時間複雜度o(1),插入/刪除第乙個元素,時間複雜度o(n),平均時間複雜度o(n)。
陣列和順序表區別:
順序表與陣列都是資料結構,只是描述角度不同。順序表是從邏輯結構的角度來說的,它的每乙個元素都只有乙個前驅元素和乙個後驅元素除了頭和尾,邏輯結構還有佇列,堆疊,樹,圖等。而陣列是從物理存貯的角度來說的,順序錶用陣列存貯也可以用鍊錶來存貯,同樣的佇列也可以用陣列和鍊錶存貯。
注:用陣列實現線性表時,定義的陣列長度要大於線性表實際的元素個數。、
鏈式儲存方式:
鍊錶是一種物理儲存單元上非連續、非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的。鍊錶由一系列結點組成,結點可以在執行時動態生成。每個結點包括兩個部分:資料域和指標域。
插入和刪除:插入/刪除時時間複雜度為o(1),查詢元素時時間複雜度為o(n)。所以鍊錶允許插入和刪除表上任意位置上的結點,但不允許隨機儲存。
單鏈表:
雙向鍊錶:
迴圈鍊錶:
頭指標和頭結點
的區別:
頭指標:
(1)頭指標是指鍊錶指向第乙個結點的指標,若煉表有頭結點,則是指向頭結點的指標,否則指向首元結點。
(2)頭指標具有標識作用,所以常用頭指標冠以鍊錶的名字(指標變數的名字)。
(3)若煉表中附設頭結點,則無論鍊錶是否為空,頭指標均不為空,否則表示空表的鍊錶的頭指標為空。
(4)頭指標是鍊錶的必要元素
頭結點:
(1)頭結點是為了操作的統一和方便而設立的,放在第乙個元素的結點之前,其資料域一般無意義(但也可以用來存放鍊錶的長度)。
(2)有了頭結點,對在第一元素結點前插入結點和刪除第一結點,其操作與其他結點的操作就統一了。
(3)頭結點不一定是鍊錶的必須元素。
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 開發等等.呵呵.我們進入正題吧.我在這裡就只實現線性表的連表結構.當然了,這裡實際上包含了好多知識.我希望大家在引用的時候.一定要領悟裡面的一些變...
資料結構之線性表
線性表是具有相同特性的資料元素的乙個有限序列。該序列中所含元素的個數叫做線性表的長度,用n表示,n 0。當n 0時,表示線性表是乙個空表,即表中不包含任何元素。設序列中第i i表示位序 個元素為ai 1 i n 線性表的一般表示為 a1,a2,ai,ai 1,an include include d...