/**
* 用顺序表实现 王道P18 T1
*
* ①算法思想:
* 设置一个变量MinValue用来保存最小值,刚开始可以假定最小值为第一个元素,后续通过遍历比较大小进行覆盖,
* 遍历过程中用MinIndex保存最小值元素所在表的数组下标,比较结束后返回MinValue的值,并将最后一个元素覆盖在最小值元素的位置。
*
* ②数据结构:
* typedef struct{
* int data[MaxSize];
* int length;
* }SqList;
*
* ③算法设计
*/
#include <stdio.h>
#define MaxSize 100
typedef struct{
int data[MaxSize];
int length;
}SqList;
int DeleteMinValue(SqList &L){
if(L.length == 0){
printf("顺序表为空!");
return 0;
}
int MinValue = L.data[0],MinIndex = 0;
for (int i = 1; i < L.length; ++i) {
if(L.data[i] < MinValue){
MinValue = L.data[i];
MinIndex = i;
}
}
L.data[MinIndex] = L.data[L.length - 1];
L.length--;
return MinValue;
}
//以下用于测试
void InitList(SqList &L){
for (int i = 0; i < MaxSize; ++i) {
L.data[i] = 0;
}
for(int i = 0;i < 5;i++){
L.data[i] = i;
}
L.length = 5;
}
void PrintList(SqList L){
for (int i = 0; i < MaxSize; ++i) {
printf("%d ",L.data[i]);
}
printf("\n");
}
int main(){
SqList L;
InitList(L);
PrintList(L);
printf("%d",DeleteMinValue(L));
}
王道书P18 T1(静态顺序表实现)
于 2022-07-01 14:17:59 首次发布