線性表 順序表的應用

2021-08-21 01:48:35 字數 636 閱讀 3690

一:

刪除順序表中所有值為x的資料元素

要求:時間複雜度為o(n)、空間複雜度為o(1)

若用基本運算實現

void delnode1(sqlist *&l,elemtype x)

} 時間複雜度為n^2

故解法為:複製保留的元素

逐個複製要保留的元素,共用空間,不需要額外空間

void delnode1(sqlist *&l,elemtype e)

l->length=k;

}二:分離元素

以第乙個元素為分界線,將所有小於它的元素移到該元素前面,將所有大於它的元素移到該元素後面。

解法一:以目標元素為基準,從區間兩端向中間掃瞄,直至i=j為止

每輪迴圈

(1)從右向左掃瞄,找乙個小於等於目標元素的元素

(2)從左向右掃瞄,找乙個大於等於目標元素的元素

(3)交換兩者位置

退出迴圈後,將目標元素與i=j時的元素交換

void move1(sqlist *&l)

{ int i=0.j=l->length-1;

elemtype pivot=l->data[0];

elemtype tmp;

while(i

線性表 順序表

1 線性表 線性表是最基本 最簡單 也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。線性表的邏輯結構簡單,便於實現和操作。因此,線性表這種資料結構在實際應用中是廣泛採用的一種資料結構。線性表 list,零個或多個資料...

線性表 順序表

線性結構的特點是 在非空的有限集合中,只有唯一的第乙個元素和唯一的最後乙個元素。第乙個元素沒有直接前驅元素,最後乙個沒有直接的後繼元素。其它元素都有唯一的前驅元素和唯一的後繼元素。要想將線性表在計算機上實現,必須把其邏輯結構轉化為計算機可識別的儲存結構。線性表的儲存結構主要有兩種 順序儲存結構和鏈式...

線性表 順序表

基本思想 用一段位址連續的儲存單元一次儲存線性表的資料元素 隨機訪問 注意事項 c 語言中陣列下標是從0開始的,而線性表中元素序號是從1開始的,也就是說 線性表中第i個元素儲存結構在陣列中下標為i 1的位置。首先是大體的函式宣告 const int maxsize 100 根據實際問題定義具體的大小...