帮我写出C++代码实现顺序表的建立,清空,插入,删除,查找,修改等运算
时间: 2023-06-06 07:07:05 浏览: 105
好的,以下是基本的顺序表操作的 C 代码实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 最大容量
typedef struct {
int data[MAX_SIZE]; // 顺序表数据
int length; // 当前长度
} SeqList;
void InitSeqList(SeqList* list) {
list->length = 0; // 初始化长度为0
}
void ClearSeqList(SeqList* list) {
list->length = 0; // 直接将长度置0即可
}
int InsertSeqList(SeqList* list, int index, int value) {
// 判断插入位置是否合法
if (index < 0 || index > list->length || list->length == MAX_SIZE) {
return 0; // 返回插入失败
}
// 将插入位置后的元素后移一位
for (int i = list->length - 1; i >= index; i--) {
list->data[i+1] = list->data[i];
}
list->data[index] = value; // 在插入位置处放置新元素
list->length++; // 长度加1
return 1; // 返回插入成功
}
int DeleteSeqList(SeqList* list, int index) {
// 判断删除位置是否合法
if (index < 0 || index >= list->length || list->length == 0) {
return 0; // 返回删除失败
}
// 将删除位置后的元素前移一位
for (int i = index + 1; i < list->length; i++) {
list->data[i-1] = list->data[i];
}
list->length--; // 长度减1
return 1; // 返回删除成功
}
int FindSeqList(SeqList* list, int value) {
// 遍历查找元素
for (int i = 0; i < list->length; i++) {
if (list->data[i] == value) {
return i; // 找到返回下标
}
}
return -1; // 没有找到返回-1
}
int ModifySeqList(SeqList* list, int index, int new_value) {
// 判断修改位置是否合法
if (index < 0 || index >= list->length || list->length == 0) {
return 0; // 返回修改失败
}
list->data[index] = new_value; // 直接修改元素值
return 1; // 返回修改成功
}
```
需要注意的是,由于本程序是通过输入的方式进行操作的,所以需要一个用于获取用户输入的函数,请在代码中实现自己的输入函数,并在相应的位置调用即可。
阅读全文