一:
刪除順序表中所有值為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 根據實際問題定義具體的大小...