题目:
从顺序表中删除具有最小值的元素(假设唯一)并有函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行
代码:
#include<bits/stdc++.h>
using namespace std;
#define maxsize 100
struct sqlist{
int data[maxsize]={2,4,5,6,3,8,9};
int length=7;
};
bool deletelist(sqlist &l,int &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];
return true;
}
int main(){
sqlist l;
cout<<"原先数组为:"<<endl;
for(int i=0;i<l.length;i++){
cout<<l.data[i]<<" ";
}
int value=0;
if(deletelist(l,value)){
cout<<"最小元素是:"<<value<<endl;
cout<<"修改之后的线性表是"<<endl;
for(int i=0;i<l.length;i++){
cout<<l.data[i]<<" ";
}
cout<<endl;
}
else{
cout<<"错误"<<endl;
}
return 0;
}