/*从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。
空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。*/
#include<stdio.h>
#include<stdlib.h>
#define MaxSize 100
typedef int ElemType;
typedef struct{
ElemType *data;
int length;
}SqList;
bool InitSqList(SqList &L)
{
L.data = (ElemType*)malloc(sizeof(ElemType)*MaxSize);
L.length = 0;
return true;
}
bool deleMinVal(SqList &L,ElemType &min)
{
if(L.length == 0)
{
printf("ERROR!\n");
return false;
}
int loc=0;
min = L.data[0];
for(int i=1;i<L.length;++i)
if(L.data[i]<min)
{
loc = i;
min = L.data[i];
}
L.data[loc] = L.data[L.length-1];
return true;
}
bool printList(SqList L)
{
for(int i=0;i<L.length;++i)
printf("%d ",L.data[i]);
printf("\n");
return true;
}
void main()
{
SqList L;
InitSqList(L);
int minVal;
int a[5]={8,2,3,4,5};
for(int i=0;i<5;++i)
{
L.data[i] = a[i];
}
L.length = 5;
printList(L);
deleMinVal(L,minVal);
printList(L);
printf("最小值是:%d\n",minVal);
}
顺序表-输出最小值
最新推荐文章于 2024-09-05 18:43:54 发布