資料結構 線性表

2021-10-09 20:37:34 字數 1366 閱讀 8933

定義

線性表是具有相同資料型別的n(n >= 0)個資料元素的有限序列。其中n為表長,當n=0時,該線性表是乙個空表。若用l命名線性表,則其一般表示如下:l=(a1, a2, …, ai, ai+1, … , an)。其中,a1是唯一的第乙個資料元素,又稱為表頭元素;an是唯一的最後乙個資料元素,又稱為表尾元素。除第乙個元素外,每個元素有且僅有乙個直接前驅。除最後乙個元素外,每個元素有且僅有乙個直接後繼。這就是線性表的邏輯特性

線性表的特點:

順序表的定義

線性表的順序儲存又稱為順序表,它是用一組位址連續的儲存單元,依次儲存線性表中的資料元素,從而使得邏輯上相鄰的兩個元素在物理位置上也相鄰。

特點

鏈式儲存線性表時,不需要使用位址連續的儲存單元,即它不要求邏輯上相鄰的兩個元素在物理位置上也相鄰,它是通過**「鏈」**建立起資料元素之間的邏輯關係。因此,對線性表插入、刪除不需要移動元素,而只需要修改指標。

單鏈表線性表的鏈式儲存又稱為單鏈表,它是指通過一組任意的儲存單元來儲存線性表中的資料元素。對每個鍊錶結點,除了存放元素自身的資訊之外,還需要存放乙個指向其後繼的指標。

單鏈表的結點類的描述:

public

class

node

//帶乙個引數時的建構函式

public

node

(object data)

//帶兩個引數時的建構函式

public

node

(object data, node next)

}

引入頭結點後的兩個優點:① 由於開始結點的位置被存放在頭結點的指標域中,所以在鍊錶的第乙個位置上的操作和在表的其他位置上的操作一致,無需進行特殊處理。

② 無論鍊錶是否為空,其頭指標是指向頭結點的非空指標(空表中頭結點的指標域為空),因此空表和非空表的處理也就統一了。

資料結構(線性表)

1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...

資料結構 線性表

參考 一 線性表 順序表 單鏈表 迴圈鍊錶 雙鏈表 順序表 1.表的初始化 void initlist seqlist l 2.求表長 int listlength seqlist l 3.取表中第i個結點 datatype getnode l,i 4.查詢值為x的結點 5.插入 具體演算法描述 v...

資料結構 線性表

線性表是最基礎的一種資料結構,這樣的資料物件包含的資料元素具有一對一的前驅後繼關係。按其邏輯儲存方式的不同可分為兩類線性表 順序表和鏈式表。其中鏈式表又可分為線性鍊錶 迴圈鍊錶和雙向鍊錶。下面分別介紹下這幾種線性表的資料結構 1.順序表 typedef struct sqlist 插入演算法 i到n...