算法思路:遍历顺序表,记录最小值的位置,将具有最小值元素之后的所有元素前移
#define MaxSize 10
//顺序表结构
typedef struct {
int data[MaxSize];
int length;
}SqList;
typedef int ElemType;//假设元素类型为int
bool DeleteMinValue(SqList& L,ElemType &min_value) {
if (L.length == 0) { //判断表是否为空
return false;
}
min_value = L.data[0]; //假设表的第一个元素最小
int index; //定义最小元素位置
for (int i = 1; i < L.length; i++) {
if (L.data[i] < min_value) {
min_value = L.data[i];
index = i; //储存最小元素位置
}
}
int j;
//将最小值之后的元素都向前移一位
for (j = index; j < L.length-1; j++) {
L.data[j] = L.data[j + 1];
}
L.length--;
return true;
}