intDeleData_Min(SqList &L,int value){if(L.length==0){printf("顺序表为空!");return0;}
value = L.data[0];int position =0;for(int i=0;i<L.length;i++){if(L.data[i]<value){
value = L.data[i];
position = i;}}
L.data[position]=L.data[L.length-1];
L.length--;return value;}
实现代码
#include<stdio.h>#include<stdlib.h>#defineOVERFLOW-2#defineInitSize100typedefstruct{int*data;int MaxSize,length;}SqList;//初始化 intInitList(SqList &L){
L.data =(int*)malloc(sizeof(int)*InitSize);if(!L.data)exit(OVERFLOW);
L.length=0;return0;}//输入值intInputData(SqList &L,int n){for(int i=0;i<n;i++){scanf("%d",&L.data[i]);
L.length++;}return0;}//输出值intOutputData(SqList L){for(int i=0;i<L.length;i++){printf("%d ",L.data[i]);}printf("\n");return0;}//实现算法 intDeleData_Min(SqList &L,int value){if(L.length==0){printf("顺序表为空!");return0;}
value = L.data[0];int position =0;for(int i=0;i<L.length;i++){if(L.data[i]<value){
value = L.data[i];
position = i;}}
L.data[position]=L.data[L.length-1];
L.length--;return value;}intmain(){int n,value,t;
SqList L;InitList(L);printf("输入到顺序表中的个数为:");scanf("%d",&n);printf("依次输入到顺序表中的值为:");InputData(L,n);
t=DeleData_Min(L,value);printf("要删除顺序表中的最小值为:t=%d\n",t);printf("输出顺序表中被删除最小值后剩余的数:");OutputData(L);return0;}