线性表删除完整C语言代码
时间: 2023-07-14 11:14:10 浏览: 138
下面是一个简单的线性表删除操作的完整C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 线性表的最大长度
typedef struct {
int data[MAX_SIZE];
int length;
} List;
// 初始化线性表
void initList(List *list) {
list->length = 0;
}
// 向线性表插入元素
void insert(List *list, int index, int value) {
if (index < 0 || index > list->length || list->length == MAX_SIZE) {
printf("插入位置不合法或线性表已满\n");
return;
}
for (int i = list->length - 1; i >= index; i--) {
list->data[i + 1] = list->data[i];
}
list->data[index] = value;
list->length++;
}
// 删除线性表中指定位置的元素
void delete(List *list, int index) {
if (index < 0 || index >= list->length) {
printf("删除位置不合法\n");
return;
}
for (int i = index; i < list->length - 1; i++) {
list->data[i] = list->data[i + 1];
}
list->length--;
}
// 打印线性表中的元素
void printList(List *list) {
printf("线性表中的元素为:");
for (int i = 0; i < list->length; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
int main() {
List list;
initList(&list);
insert(&list, 0, 1);
insert(&list, 1, 2);
insert(&list, 2, 3);
printList(&list);
delete(&list, 1);
printList(&list);
return 0;
}
```
在这个代码中,我们使用了一个结构体 `List` 来表示线性表。该结构体中包含了一个整型数组 `data` 和一个整型变量 `length`,分别表示线性表中的元素和线性表的长度。
在 `initList` 函数中,我们将 `length` 初始化为 0,表示线性表中没有元素。
在 `insert` 函数中,我们首先判断插入位置是否合法,如果不合法或者线性表已满,则直接返回。然后我们将插入位置后面的所有元素后移一位,为新元素腾出位置,最后将新元素插入到指定位置,并将线性表的长度加一。
在 `delete` 函数中,我们首先判断删除位置是否合法,如果不合法,则直接返回。然后我们将删除位置后面的所有元素向前移动一位,覆盖掉被删除的元素,最后将线性表的长度减一。
在 `printList` 函数中,我们遍历线性表中的所有元素,并打印出来。
在 `main` 函数中,我们初始化一个空的线性表,然后向其中插入三个元素 1、2 和 3,最后删除第二个元素,再打印出线性表中的所有元素。
阅读全文