天天看點

從順序表中删除一個具有最小值的元素(假設唯一)并由函數傳回被删元素的值。空出的位置由最後一個元素填補,若順序表為空則顯示出錯資訊并退出運作

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為最小值
}
           
注意:本題也可以由函數傳回值傳回,兩者的差別是:函數傳回值隻能傳回一個值,而參數傳回(引用參數)可以傳回多個值

繼續閱讀