資料結構線性表

2021-10-17 20:17:18 字數 2071 閱讀 4399

練習題目

資料結構可以從邏輯結構、物理(儲存)結構、資料運算三個角度進行理解分析。

邏輯結構包括線性結構(線性表、佇列、棧)與非線性結構(樹、圖);

物理結構包括順序儲存、鏈式儲存、索引儲存、雜湊儲存;

資料運算包括插入、刪除、修改、查詢、排序等。

由型別相同的資料元素element)組成的有序列表。

表中的元素的值與他的位置之間可以有或無聯絡,分為:

有序線性表與無序線性表。

例如:字母表、每個月的天數等。

空表:不包含任何元素的線性表。

長度:當前線性表中元素的個數。

表頭:線性表中的第乙個元素。

表尾:線性表中的最後乙個元素。

:下標從0到n-1。

除第乙個元素外,其他元素只有唯一乙個直接前驅。

除了最後乙個元素外,其他元素只有唯一乙個直接後繼。

資料元素的型別;

分配儲存空間;

資料長度;

當前位置;

表容量。

例如:

typedef

struct

elem;

elem* listarray;

int listlength;

int listcurpos;

int listsizes;

建立與清空;

獲取元素的值;

獲取線性表的長度即元素的個數;

列印;插入、刪除、末尾新增

移到上/下乙個元素

移到第乙個元素

移到最後乙個元素

移到第n個元素

順序表與鏈式表

順序表的特點:

1) 邏輯上相鄰的兩個元素物理上也相鄰,因此可以隨機訪問表中的任意元素。

2) 儲存空間位址連續,且需要預先分配。

3) 儲存空間利用率高,沒有其他結構性開銷。

4) 由於順序表的長度與規模需要預先分配,,所以如果線性表的大小未知,則不宜採用線性表。

5) 插入與刪除需要移動大量的元素。

——insert與remove的最差、平均時間複雜度是o(n)。

6) 順序表的位址計算公式有乙個規律:

adr(ai)=adr(a1)+(i-1)k;k表示每個資料元素佔k個位元組。

鏈式表見下一講。

——將線性表的元素相繼放在乙個連續位址的儲存空間中。

——可以用一維陣列描述儲存結構。

——可以對錶中的元素進行隨機訪問(訪問)。

size 最大許可長度

length 目前長度(元素個數)

curpos 當前位置

array 分配的固定長度陣列的首位址

#define bool int

bool listclear()

;bool listcreat

(int maxsize)

;bool listsetstart()

;bool listsetend()

;bool listnext()

;bool listprev()

;bool listsetpos

(int pos)

;int

listgetlength()

;bool listgetvalue

(elem* it)

;bool listinsert

(const elem* it);(

const elem* it)

;bool listremove

(elem* it)

;void

listprint()

;

具體實現方法參考教輔資料(後續將上傳源**)。

建立乙個線性表要求最大支援100個元素。

隨機產生10個數值為0-99之間的元素,依次插入順序表。

設定當前位置居中。

當前位置插入數字99

移動當前位置到下乙個元素

當前位置插入100

移動當前位置到上乙個元素

刪除當前位置的元素

末尾新增元素101

清楚順序表。

將每一步的順序表列印出來。

約瑟夫問題

資料結構(線性表)

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