🕺作者: 主页
我的专栏 C语言从0到1 探秘C++ 数据结构从0到1 探秘Linux 算法题上机准备 😘欢迎 ❤️关注 👍点赞 🙌收藏 ✍️留言
文章目录
- 题目
- 算法思路
- 题解
题目
从顺序表中删除具有最小值的元素( 假设唯一) 并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。
算法思路
遍历顺序表,找到值最小的元素所在下标,将最后一个元素放到最小值所在下标处。
题解
bool delMin(SqList& L) {//空表直接返回falseif (L.length == 0) {printf("表空无法操作\n");return false;}int min = L.data[0];//记录最小值int minIndex = 0;//记录最小值所在位置下标for (int i = 1; i < L.length; i++) {if (L.data[i] < min) {min = L.data[i];minIndex = i;}}L.data[minIndex] = L.data[L.length - 1];//用最后一个位置元素覆盖被删除元素L.length--; //维持表长正确性return true;
}