顺序表题目描述及代码实现
题目描述:从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空则显示出错误信息并退出运行。
题目分析:设置一个变量min记录最小的元素,初始值为顺序表的第一个元素,而后将其与顺序表的各元素相比,若有更小值,则更新min的值;设置一个变量index用于记录最小值的下标,用于将最后一元素填补到最小值元素的位置。
实现代码:
int del_sqlist(sqList &L,ElemType &min)
{
if (L.length == 0)
return false;
min = L.data[0];
int index = 0;
for (int i = 1; i < length; i++)
{
if (L.data[i] < min)
{
min = L.data[i];
index = i;
}
}
L.data[index] = L.data[L.length - 1];
L.length--;
return min;
}