利用线性表的顺序存储结构,建立一个长度为20个元素的线性表,存储整型数据(1,3,5,7,9,11)实现线性表的初始化、线性表的输入( 输入6个数),然后删除第三个位置的元素。 输入样例:1 3 5 7 9 11 输出样例:1 3 7 9 11使用c语言写
时间: 2024-12-15 10:30:49 浏览: 7
首先,我们使用数组来表示线性表的顺序存储结构。在这个例子中,我们创建一个大小为20的数组,并初始化前六个元素为给定的数据。然后我们提供函数来输入新的元素以及删除指定位置的元素。
```c
#include <stdio.h>
#define SIZE 20
// 初始化线性表
void initialize(int arr[], int len) {
for (int i = 0; i < len && i < SIZE; i++) {
arr[i] = 1 + (i * 2); // 使用示例值,这里可以用1代替初始值
}
}
// 线性表的输入
void input_elements(int arr[], int len, int numElements) {
if (numElements > len || numElements > SIZE) {
printf("错误:输入元素过多!\n");
return;
}
for (int i = 0; i < numElements; i++) {
scanf("%d", &arr[len + i]);
}
}
// 删除线性表的第n个元素
void delete_element(int arr[], int len, int index) {
if (index < 0 || index >= len) {
printf("错误:索引超出范围!\n");
return;
}
// 将第n+1个元素移动到第n个位置
for (int i = index; i < len - 1; i++) {
arr[i] = arr[i + 1];
}
// 减少长度,因为我们不再需要最后一个元素
len--;
}
int main() {
int arr[SIZE], len = 6; // 初始长度为6
initialize(arr, len);
// 输出初始线性表
printf("初始化后的线性表: ");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
// 输入新元素
int numElementsToInput;
printf("请输入要插入的新元素数量: ");
scanf("%d", &numElementsToInput);
input_elements(arr, len, numElementsToInput);
// 删除第三个位置的元素
int deleteIndex;
printf("请输入要删除的元素的位置(从0开始): ");
scanf("%d", &deleteIndex);
delete_element(arr, len, deleteIndex - 1); // 因为数组下标从0开始
// 输出更新后的线性表
printf("\n删除元素后的线性表: ");
for (int i = 0; i < len; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行这个程序后,输入样本`1 3 5 7 9 11`,再输入新元素的数量和要删除的位置,会看到线性表的变化。注意删除元素操作会影响后续元素的位置。
阅读全文