1.從順序表中删除一個具有最小值的元素(假設唯一)并由函數傳回被删元素的值。空出的位置由最後一個元素填補,若順序表為空則顯示出錯資訊并退出運作。
算法思想:搜尋整個順序表,查找最小值并記住其位置,搜尋結束後用最後一個元素填補空出的最小值元素的位置
bool Del_Min(sqList &L,ElemType &value){
//若删除順序表L中最小值元素結點,并通過引用參數類型value傳回其值
//若删除成功,則傳回true;否則傳回false
if(L.length==0)
return false; //表空,終止操作傳回
value=L.data[0];
int pos=0; //假定0号元素的值最小
for(int i=1;i<L.length;i++) //循環,尋找具有最小值得元素
if(L.data[i]<value){
value-L.data[i];
pos=i;
}
L.data[pos]=L.data[L.length-1]; //空出的元素由最後一個元素填補
L.length--;
return true; //此時,value為最小值
}
注意:本題也可以由函數傳回值傳回,兩者的差別是:函數傳回值隻能傳回一個值,而參數傳回(引用參數)可以傳回多個值