第二章 线性表 删除最小返回最小值,空出的由最后元素填补
#include <stdio.h>
using namespace std;
#define Max 50
struct SqlList{
int a[Max]={5,9,2,37,1,8,12,23};
int length=8;
};
bool Listdelete(SqlList &s,int &ele){//需要加引用符
if(s.length==0){
return false;
}
int min=s.a[0];
int flag=0;
for(int i=1;i<s.length;i++){
if(min>s.a[i]){
flag=i;
min=s.a[i];
}
}
ele=s.a[flag];//返回被删除的数
s.a[flag]=s.a[s.length-1];
return true;
}
int main(){
SqlList s;
printf("原来的数组为:\n");
for(int i=0;i<s.length;i++){
printf("%d ",s.a[i]);
}
printf("\n");
int k=0;
if(Listdelete(s,k)){
printf("被删除的值为:\n");
printf("%d\n",k);
}
else{
printf("数组为空");
}
printf("现在的数组为:\n");
for(int i=0;i<s.length;i++){
printf("%d ",s.a[i]);
}
}