資料結構之線性表

2021-09-26 13:33:44 字數 3115 閱讀 7498

乙個資料元素可以是乙個簡單的資料、符號,也可以是若干個資料項組合。

具有n個資料元素的有限序列。資料元素對應的關係是一對一關係

線性表在計算機中的 表現形式大概有兩種:

集合形式:(a1,a2,a3,…,an)

二元組形式:(d,s)

其中第一種形式就不做介紹了,注意看一下第二個形式。

d表示元素的集合

d=s表示的是關係集合:主要表示資料元素之間的前驅後繼的關係。

s=第乙個小括號裡面的表示:a1是a2的前驅。a2是a1的後繼。

線性表的特點:

(1)有且只有乙個開始結點,沒有前驅,只有乙個後繼.

(2)有且只有乙個終端結點,沒有後繼,只有乙個前驅

(3)其餘內部結點,(2<=i<=n-1)都有且只有乙個前驅ai-1和乙個後繼ai+1

例:元素可以是英文本母(a,b,c,d,…,z)

也可以是物件陣列(stu1,stu2,stu3,…,stun)注意:裡面的每個對應又有若干個屬性。

儲存結構:資料元素之間的關係在計算機中有兩種不同的表示方法

(1)順序儲存結構–-順序表

(2)鏈式儲存結構—鍊錶

示元素之間的邏輯關係一組連續的儲存空間—一位陣列。需要用乙個變數來表示線性表的長度。

每個元素所佔的儲存空間:len=29;

則可推算:loc(3)=loc(1)+2*29=2058;

loc(i)=loc(1)+(i-1)*29;

順序表達 訪問時隨機的。

串:定義:串也稱為字串,是由n(n>=0)個字串組成的有限序列。可以是字母、數字或者其他字元。

注意:空串與空格串的區別。

主串和子串:將乙個串中 若干個相連的字元組成的子串行稱為該串的子串。包含子串的串稱為主串。

例如: t=「struct」 ,s=「data structure」,稱t是s的子串。

陣列:陣列是一種特殊的線性表,陣列是乙個固定的儲存結構,在操作的時候需要注意,只能對裡面的元素進行存

取和修改。

此處敘述乙個多維陣列:

a11 a12 a13 a14 … a1n

a21 a22 a23 a24 … a2n

…am1 am2 am3 am4 … amn

行優先儲存:

將這裡的每一行都可以看做乙個陣列,那麼就是有m個長度為n的陣列,最後可以將這m個陣列作為乙個大數

組的元素,就變成了乙個長度為m的陣列,裡面的每乙個元素都是乙個陣列,長度為n。

列優先儲存:

反之以列為單位的話,可以看做n個長度為m的陣列,然後化作乙個長度為n的大陣列,大陣列裡面每個元素又

是乙個小陣列,每個小陣列都是等長的,長度為m。

例題:

這裡的loc(a11)可以看作是陣列的首位址。加上之間元素占用的位址,就是目標元素的位址。

在例2中有兩個大坑,不注意的會很容易做錯,來分析一下這個題:

陣列規模告訴了。10*10的規模。首位址是1000.

①號坑:沒有明確告訴每個元素占用的儲存單元。但是題中卻告訴了我們陣列的型別,陣列的型別是int

型,int型的數值占用2個儲存單元,間接告訴我們了儲存單元。

錯,注意這裡給出的形式。平時我們知道a[5]是第6個元素,在這裡一樣的想法,也就是問a68的位址,帶入公

式便可計算成功。

廣義表定義:廣義表又稱列表,是線性表的推廣。

廣義表是n(n>=0)個元素a1,a2,a3,…,an的有限序列,其中ai或者是原子項,或者是乙個廣義表。

ls=(a1,a2,a3,…,an)。

ls是廣義表的名字,n為廣義表的長度。若ai是廣義表,則稱它為ls的子表。(一般父錶用大寫字母,原子用

小寫字母)。

示例:

注意看好廣義表的長度,和每個元素是廣義表還是原子項。

表頭表尾

任何乙個非空廣義表的表頭可能是原子也可能是廣義表,表尾一定是廣義表。

()和(())兩個廣義表不同,第乙個廣義表是乙個空表,裡面沒有任何元素,第二個廣義表裡面有乙個

空表元素。

廣義表的特點:

廣義表的深度:相當於有多少層括號。

廣義表的儲存結構通常採用鏈式儲存結構

hp:表頭或者表頭指標。

tp:表尾或者表尾指標。表結點的尾指標,如果當前表結點是表尾的話,那麼tp處為:^

tag=1表示當前結點尾表結點,如果tag=0表示當前結點尾原子結點。

atom為原子。

乙個儲存結構的例項:

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...