資料結構與演算法 線性表

2021-10-02 04:38:00 字數 2400 閱讀 5599

●n維向量(x1,x2,…,xn)是乙個長度為n的線性表

●英文小寫字母表(a,b,c,…,z)是乙個長度為26的線性表

●一年中的四個季節(春,夏,秋,冬)是乙個長度為4的線性表

●矩陣是乙個比較複雜的線性表

● 學生情況登記表是乙個複雜的線性表

由若干資料項組成的資料元素稱為記錄

由多個記錄構成的線性表又稱為檔案(file)

線性表是由n(n≥0)個屬性相同資料元素a1,a2…an組成的乙個有限序列,線性表或是空表,或可以表示為

a=(a1,a2,…,ai,…,an)

其中ai(i=1,2,…,n)是線性表中的乙個元素。i表示元素存在的位置。

(1)有且只有乙個表頭元素a1,它無前驅;

(2)有且只有乙個表尾元素an,它無後繼;

(3)表頭元素與表尾元素外,其它所有元素有且只有乙個前驅,也有且只有乙個後繼。

(4)線性表中結點的個數n稱為線性表的長 度。當n=0時,稱為空表。

a=(a1,a2,…,ai,…,an)

資料元素: d=

資料關係r

r1=操作p

1.構造表:建立線性表

2. 求表長:求線性表中資料元素個數

3. 判空表:判定線性表是否為空

4. 插入:在指定位置插入資料元素

5. 刪除:刪除指定位置上的資料元素

6. 取值:獲取指定位置資料元素的值

2.鏈式儲存:用一組位址任意的儲存單元(位址可以連續也可以不連續),依次儲存線性表中的各資料元素,邏輯上相鄰的資料元素在物理位置上不一定相鄰。(使用指標) 鍊錶

順序表的定義

用一組位址連續的儲存單元依次儲存線性表中每個資料元素,這種儲存結構稱為線性表的順序儲存結構,用這種結構表示的線性表稱為順序表。

順序表的特點:用資料元素在計算機內物理位置相鄰來表示線性表中資料元素之間的邏輯關係。

線性表中第i個資料元素ai的儲存位置:

loc(ai)=loc(a1)+(i-1)×m

loc(a1)為線性表的首位址或基位址;m為線性表中的每個資料元素占用的儲存單元數。

線性表的順序儲存結構為隨機儲存結構。

//返回順序表所有元素的描述字串,形式為「(,)」。

//覆蓋object類的tostring()方法

public string tostring()

優點

邏輯相鄰,物理相鄰

可隨機訪問任一元素

儲存空間使用緊湊

缺點

插入、刪除操作需要移動大量的元素

預先分配空間需按最大空間分配,利用不充分

表容量難以擴充

線性表順序儲存結構特點:

邏輯關係上相鄰的兩個元素在物理儲存位置上也相鄰;

優點:

可以隨機訪問表中任一元素;

缺點:

(1)在插入,刪除某一元素時,平均要移動一半元素,平均時間複雜度o(n)。

⑵ 表的容量難以確定,表的容量難以擴充;

⑶ 易造成儲存空間的碎片。

鏈式儲存結構中的每個儲存單元稱為「結點」,結點包含乙個資料域和乙個位址域;

資料域存放資料元素資訊;位址域存放前驅或後繼結點位址;

資料元素之間的邏輯關係通過結點中的位址域表示;

訪問鏈式儲存結構通常由第乙個結點開始,逐一訪所有結點。

具有n個資料元素的線性表對應的n個結點通過鏈結方式鏈結成乙個鍊錶,即為線性表的鏈式儲存結構。

順序儲存結構優點

比較簡單。

可以實現隨機訪問,訪問速度快。

每個結點只儲存元素自身資訊,不需額外空間。

順序儲存結構缺點

需要占用一片連續的儲存空間,並且需要事先估計儲存空間的大小。

插入和刪除操作時,需要移動大量的元素,效率較低。

鏈式儲存結構優點

不需占用連續儲存空間,使用鍊錶前不用事先估計儲存空間大小。

插入和刪除操作時,不需要移動大量元素。

鏈式儲存結構缺點

操作演算法較複雜。

不能隨機訪問。

需要額外空間來表示元素間的關係,空間代價較高。

順序儲存結構比較適合於線性表的長度不經常發生變化,不經常進行插入和刪除操作,經常進行訪問和查詢操作。

鏈式儲存結構比較適合於線性表的長度不可預知,需要頻繁進行插入和刪除操作。

資料結構與演算法 線性表

概念 一種資料結構,每個結點最多只有乙個前驅結點和乙個後繼結點 類別 順序表 定長 鍊錶 變長 棧 棧頂刪除 彈棧 棧頂插入 壓棧 後進先出 lifo 佇列 隊頭刪除 出隊 隊尾插入 入隊 先進先出 fifo 線性表的抽象資料型別定義 c 1.template2.class list 棧的抽象資料型...

資料結構與演算法 線性表

1.線性表 1.1 線性表的定義和基本運算 定義 線性表是具有相同資料型別的n個資料元素的有限序列。除表頭元素外,每個元素有且僅有乙個直接前驅 除表尾元素外,每個元素有且僅有乙個直接後繼。特點 個數有限 具有邏輯上的順序性 資料元素型別都相同。基本操作 初始化 求表長 按值查詢 按位查詢 插入 刪除...

資料結構與演算法 線性表

線性表 list 由零個或多個資料元素組成的有限序列。這裡需要強調幾個關鍵的地方 如果用數學語言來進行定義,可如下 若將線性表記為 a1,ai 1,ai,ai 1,an 則表中ai 1領先於ai,ai領先於ai 1,稱ai 1是ai的直接前驅元素,ai 1是ai的直接後繼元素。所以線性表元素的個數n...