用c++删除顺序表最大的值
时间: 2024-05-08 14:15:34 浏览: 86
数据结构与算法c++实现 删除顺序表中大于x的元素
5星 · 资源好评率100%
以下是使用C语言删除顺序表中最大值的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
void initList(SqList *L) {
L->length = 0;
}
void insert(SqList *L, int value) {
if (L->length >= MAXSIZE) {
printf("List is full.\n");
return;
}
L->data[L->length++] = value;
}
void deleteMax(SqList *L) {
if (L->length == 0) {
printf("List is empty.\n");
return;
}
int maxIndex = 0;
for (int i = 1; i < L->length; i++) {
if (L->data[i] > L->data[maxIndex]) {
maxIndex = i;
}
}
L->data[maxIndex] = L->data[L->length - 1];
L->length--;
}
void printList(SqList L) {
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SqList L;
initList(&L);
insert(&L, 5);
insert(&L, 3);
insert(&L, 8);
insert(&L, 1);
insert(&L, 9);
printf("Before deleting max value: ");
printList(L);
deleteMax(&L);
printf("After deleting max value: ");
printList(L);
return 0;
}
```
这个程序首先定义了一个结构体`SqList`,用于表示顺序表,包括数据和长度。然后定义了一些操作函数,如`initList`用于初始化顺序表,`insert`用于插入数据,`deleteMax`用于删除最大值,`printList`用于打印顺序表。
在`deleteMax`函数中,首先判断顺序表是否为空,然后循环遍历顺序表中的元素,找到最大值的下标,最后将最大值替换为最后一个元素,并将顺序表长度减1。
在`main`函数中,首先初始化顺序表,然后插入一些数据,打印顺序表,然后删除最大值,再次打印顺序表,最后返回0表示程序正常结束。
阅读全文