删除顺序表最小元素

题目:从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错误信息并退出运行。


#include <iostream>

#include<stdlib.h>

//#include <limits>

using namespace std;

#define MaxSize 50

// auto inf = std::numeric_limits<double>::infinity();

int inf =999999999;

int tempi=-1;//全局变量 临时索引 用来后面填补

typedef struct{//定义顺序表

int date[MaxSize];

int length;

} SqList;

int delmin(SqList &x){

if(x.length==0)//判断表是否为空

return -1;

int min0= inf;

for(int i=0;i<x.length;i++){//找出最小值与其索引

if(x.date[i]<min0){

min0=x.date[i];

tempi=i;

}

}

x.date[tempi]=x.date[x.length-1];//填补

return min0;

}

int main()

{

SqList S;

// S.date[MaxSize]= {8,2,3,1,5};

int initialValues[] = {8, 2, 3, 1, 5};//以此为例初始化顺序表

    for (int i = 0; i < MaxSize; i++) {

        S.date[i] = initialValues[i];

}

S.length=5;

int tempmin;

tempmin=delmin(S);

cout<<tempmin<<endl;

// cout<<tempmin<<endl<<tempi<<endl;

// for (int j = 0; j < S.length; j++) {

    //    cout<<S.date[j]<<endl;

// }

return 0;

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容