タイトル:「データ構造」 - 第 2 章 線形テーブル - 配列リストから最小値を持つ要素 (一意であると仮定) を削除し、削除した要素の値を関数で返すと、空いた位置は関数で埋められます。 last element, if シーケンス リストが空の場合、エラー メッセージが表示され、操作は終了します。
分析:
1. 最小の要素を見つけます (一意であると仮定します)
2. そしてそれを削除します
3. 関数は削除された要素の値を返します
4. 空いた位置は最後の要素で埋められます
5. シーケンス リストが空の場合、エラーメッセージが表示され、操作が終了します。
int Del_Min(SqList &L;Elemtype &e){
//由e返回最小元素的值
if(L.length == 0)
return false;//5.若顺序表为空,则显示出错信息并退出运行。
int e = L.data[0];
int n=0;
for(i=0;i<L.length;i++)//看清i=0还是i=1,一般i=0时表示数组元素的下标;i=1时表示数组元素的位序(也即,看清i表示的是数组的位序还是,数组的下标)
{
if(L.data[i]<e)//1.判断查找最小元素
{
e = L.data[i]//怎么填补???—>怎么记下数组下标,便于更改
n=i;
}
}
L.data[n] = L.data[L.length-1];//2.4.空缺部位由最后一个元素填补
L.length--;
return true;
}