编写一个C语言程序,已知线性表 LA存放数值 ,测试数据占两行,第一行为线性表LA的元素,元素间以空格隔开,元素数量不超过100个。第二行为需要删除的下标i 输出删除指定下标i后的顺序表
时间: 2024-09-13 12:02:39 浏览: 47
c语言数据结构线性表创建删除插入
为了编写一个C语言程序,首先你需要包含必要的头文件,比如`stdio.h`用于输入输出,以及一些数组处理的库。这里是一个简单的示例,它会读取线性表的元素、删除指定位置的元素,并打印出修改后的顺序表:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义线性表结构体
typedef struct {
int *data; // 数据指针
int size; // 当前元素个数
int capacity; // 存储容量
} List;
// 动态内存分配及初始化列表
List* create_list(int n) {
List *list = (List*)malloc(sizeof(List));
list->data = (int*)malloc(n * sizeof(int));
list->size = 0;
list->capacity = n;
return list;
}
// 将输入的元素添加到列表
void add_element(List *list, int num) {
if (list->size == list->capacity) {
list->capacity *= 2;
list->data = (int*)realloc(list->data, list->capacity * sizeof(int));
}
list->data[list->size] = num;
list->size++;
}
// 删除指定索引的元素
void delete_element(List *list, int index) {
if (index >= 0 && index < list->size) {
memmove(&list->data[index], &list->data[index + 1], (list->size - index - 1) * sizeof(int));
list->size--;
} else {
printf("Invalid index.\n");
}
}
// 打印线性表
void print_list(List *list) {
for (int i = 0; i < list->size; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
int main() {
int n, element, index;
// 读取元素数量
scanf("%d", &n);
// 创建并初始化列表
List *la = create_list(n);
// 读取元素并添加到列表
for (int i = 0; i < n; i++) {
scanf("%d", &element);
add_element(la, element);
}
// 读取需要删除的下标
scanf("%d", &index);
// 删除指定元素
delete_element(la, index);
// 打印删除指定下标后的列表
print_list(la);
// 清理内存
free(la->data);
free(la);
return 0;
}
阅读全文