数据结构中请用c语音来实现线性表的九大基本运算
时间: 2024-01-10 16:04:06 浏览: 23
1. 初始化线性表
```c
void initList(List *list) {
list->length = 0;
}
```
2. 插入元素
```c
int insert(List *list, int index, int value) {
if (index < 0 || index > list->length) {
return 0; // 插入失败
}
if (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++;
return 1; // 插入成功
}
```
3. 删除元素
```c
int delete(List *list, int index) {
if (index < 0 || index >= list->length) {
return 0; // 删除失败
}
for (int i = index; i < list->length - 1; i++) {
list->data[i] = list->data[i + 1];
}
list->length--;
return 1; // 删除成功
}
```
4. 获取元素
```c
int get(List *list, int index) {
if (index < 0 || index >= list->length) {
return -1; // 获取失败,返回-1
}
return list->data[index];
}
```
5. 查找元素
```c
int find(List *list, int value) {
for (int i = 0; i < list->length; i++) {
if (list->data[i] == value) {
return i; // 找到元素,返回下标
}
}
return -1; // 没有找到元素,返回-1
}
```
6. 判断线性表是否为空
```c
int isEmpty(List *list) {
return list->length == 0;
}
```
7. 获取线性表长度
```c
int length(List *list) {
return list->length;
}
```
8. 清空线性表
```c
void clear(List *list) {
list->length = 0;
}
```
9. 遍历线性表
```c
void traverse(List *list) {
for (int i = 0; i < list->length; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
```