顺序表基本操作c语言
时间: 2023-10-22 20:04:31 浏览: 112
c语言实现顺序表的基本操作
5星 · 资源好评率100%
顺序表是一种线性结构,可以通过连续的内存空间来存储元素。在C语言中,可以使用数组来实现顺序表。下面是顺序表的基本操作:
1. 初始化顺序表:
```c
#define MAX_SIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAX_SIZE]; // 存储数据的数组
int length; // 当前顺序表的长度
} SeqList;
void InitList(SeqList *list) {
list->length = 0; // 初始化顺序表的长度为0
}
```
2. 插入元素:
```c
int Insert(SeqList *list, int pos, int element) {
if (pos < 1 || pos > list->length + 1) {
return 0; // 插入位置非法,返回失败
}
if (list->length >= MAX_SIZE) {
return -1; // 顺序表已满,返回失败
}
for (int i = list->length; i >= pos; i--) {
list->data[i] = list->data[i - 1]; // 向后移动元素
}
list->data[pos - 1] = element; // 在插入位置插入新元素
list->length++; // 长度加1
return 1; // 插入成功
}
```
3. 删除元素:
```c
int Delete(SeqList *list, int pos) {
if (pos < 1 || pos > list->length) {
return 0; // 删除位置非法,返回失败
}
for (int i = pos; i < list->length; i++) {
list->data[i - 1] = list->data[i]; // 向前移动元素
}
list->length--; // 长度减1
return 1; // 删除成功
}
```
4. 查找元素:
```c
int Search(SeqList *list, int element) {
for (int i = 0; i < list->length; i++) {
if (list->data[i] == element) {
return i + 1; // 返回元素在顺序表中的位置
}
}
return 0; // 没有找到元素
}
```
5. 获取指定位置的元素:
```c
int GetElement(SeqList *list, int pos) {
if (pos < 1 || pos > list->length) {
return -1; // 位置非法,返回错误值
}
return list->data[pos - 1]; // 返回指定位置的元素
}
```
6. 修改指定位置的元素:
```c
int Modify(SeqList *list, int pos, int element) {
if (pos < 1 || pos > list->length) {
return 0; // 位置非法,返回失败
}
list->data[pos - 1] = element; // 修改指定位置的元素
return 1; // 修改成功
}
```
阅读全文