23考研王道数据结构课后题目练习
作者:互联网
Unit 2 线性表
2.1顺序表:
逻辑结构:线性表
物理结构:顺序存储
01删除最小元素
/*
顺序表:01题
从顺序表中删除具有最小值的元素(假设唯一)并由函数返回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空,则显示出错信息并退出运行。
*/
#define MaxSize 30
#include "stdio.h"
#include "stdlib.h"
#include "stdbool.h"
typedef struct {
int data[MaxSize];
int length;
} sqlist;
bool del_min(sqlist &l, int &value) {
if(l.length == 0) //表空,返回false
return false;
value = l.data[0]; //从0开始,寻找最小元素
int pos = 0; //标记下标
for(int i = 1; i < l.length; i++) {
if(l.data[i] < value) {
value = l.data[i];
pos = i;
}
}
l.data[pos] = l.data[l.length-1];
l.length -- ;
return true;
}
void InitList(sqlist &L) {
for (int i = 0; i < MaxSize; i++)
L.data[i] = i*(i-5); //将所有数据元素设置为默认初始值
L.length = MaxSize; //初始值的长度为maxsize
}
int main() {
sqlist l;
InitList(l);
int min = 0;
for(int i =0;i<MaxSize;i++){
printf("第%d个元素为%d\n",i,l.data[i]);
}
if(del_min(l, min)) {
printf("最小元素值为:%d", min);
} else printf("顺序表为空,错误!");
return 0;
}
标签:sqlist,23,int,MaxSize,value,length,课后,data,考研 来源: https://www.cnblogs.com/Mer1ot/p/16449212.html