编写程序,实现从存储整数类型的顺序表中,删除值最小的数据元素(假设唯一)
时间: 2023-04-26 12:00:15 浏览: 149
可以按照以下步骤编写程序:
1. 定义一个整数类型的顺序表,存储需要删除的数据元素。
2. 遍历顺序表,找到值最小的数据元素。
3. 将找到的数据元素从顺序表中删除。
4. 输出删除后的顺序表。
具体实现可以参考以下代码:
```
#include <stdio.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 存储数据元素的数组
int length; // 顺序表的长度
} SqList;
// 初始化顺序表
void InitList(SqList *L) {
L->length = ;
}
// 向顺序表中插入元素
void InsertList(SqList *L, int e) {
if (L->length == MAXSIZE) {
printf("顺序表已满,无法插入!\n");
return;
}
L->data[L->length] = e;
L->length++;
}
// 删除值最小的数据元素
void DeleteMin(SqList *L) {
if (L->length == ) {
printf("顺序表为空,无法删除!\n");
return;
}
int min = L->data[]; // 假设第一个元素为最小值
int min_index = ; // 最小值的下标
for (int i = 1; i < L->length; i++) {
if (L->data[i] < min) {
min = L->data[i];
min_index = i;
}
}
// 将最小值从顺序表中删除
for (int i = min_index; i < L->length - 1; i++) {
L->data[i] = L->data[i + 1];
}
L->length--;
}
// 输出顺序表中的元素
void PrintList(SqList L) {
if (L.length == ) {
printf("顺序表为空!\n");
return;
}
for (int i = ; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SqList L;
InitList(&L);
InsertList(&L, 5);
InsertList(&L, 3);
InsertList(&L, 8);
InsertList(&L, 1);
InsertList(&L, 6);
printf("删除前的顺序表:");
PrintList(L);
DeleteMin(&L);
printf("删除后的顺序表:");
PrintList(L);
return ;
}
```
运行结果:
```
删除前的顺序表:5 3 8 1 6
删除后的顺序表:5 3 8 6
```
阅读全文