順序表應用舉例

2021-07-04 06:15:55 字數 1068 閱讀 6447

例一:將順序表la=(a1,a2,a3,…..an)逆置。

:要想將la逆置,只需要將第乙個元素與最後乙個交換,第二個和倒數第二個交換,以此類推,直到沒有元素發生交換。演算法描述如下:

void contrary_sq(sqlist &la)

}

例二:設順序表la中的元素遞增有序。試編寫演算法,將x插入到順序表的適當位置上,以保持該錶的有序性。

:從順序表la中的最後乙個元素開始與x進行比較,若該元素大於x,則將元素後移乙個位置,否則將x插入到該元素的下乙個位置。演算法描述如下:

int insert_ordersq(sqlist &la,elemtype x)

for (i=la.length-1;x

=0;i--)la.elem[i+1]=la.elem[i];

la.elem[i+1]=x;//插入元素x

++la.length;

return ok;

}

例三:有兩個順序表la,lb,其元素均按由小到大公升序排序。編寫乙個演算法將他們合併成由小到大排序的lc。

解:1)初始化lc為空表;2)分別從la何lb取得當前元素la.elem[i]和lb.elem[j];3)若la.elem[i]<=lb.elem,則將la.elem[i]插入lc中,並取la得下乙個元素;否則將lb.elem[j]插入lc中,並取lb得下乙個元素;4)重複3直至被取完。5)將剩餘的插入lc中。演算法描述如下:

void mergelist_sq(sqlist la,sqlist lb,sqlist &lc)

while(ilength)lc.elem[k++]=la.elem[i++];

while(jlength)lc.elem[k++]=lb.elem[j++];

lc.length=la.length+lb.length;

}

順序表應用5 有序順序表歸併 順序表做法)

順序表應用5 有序順序表歸併 time limit 100 ms memory limit 880 kib submit statistic problem description 已知順序表a與b是兩個有序的順序表,其中存放的資料元素皆為普通整型,將a與b表歸併為c表,要求c表包含了a b表裡所有...

順序表應用(2)

檔名稱 main.cpp,list.cpp,list.h 完成日期 2015年9月18日 版本號 vc 6.0 問題描述 將奇數移到偶數前面並且保證時間複雜度為o n 空間複雜度為o 1 輸入描述 無 程式輸出 移完後的結果 include include define maxsize 50 typ...

順序表應用 2

2 將所在奇數移到所有偶數的前面,要求演算法的時間複雜度為o n 空間複雜度為o 1 list.h define maxsize 50 typedef int elemtype typedef struct sqlist void createlist sqlist l,elemtype a,int...