- 从顺序表中删除最小值的元素(假设唯一)并由函数返回被删除元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。
- 思路:先遍历整个顺序表找出最小的元素并记录其位置,用最后一个元素替代它
- 代码:
bool Del_Min(SqList &L,ElemType &value) { if(L.length == 0) return false; value = L.data[0]; int pos = 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返回最小值,假设0号元素最小,就不用每个元素都和他后面的元素再进行比较了,而是所有元素与0号元素进行比较;
王道数据结构第二章代码题
最新推荐文章于 2024-08-08 17:05:23 发布