试给出顺序表类型定义,假定顺序表元素类型为整型,顺序表最大长度MAX,编写函数对顺序表的指定下标位置(pos)实现插入某元素值e的操作。
时间: 2024-10-16 22:10:20 浏览: 27
在C语言中,我们可以定义一个顺序表(数组)结构,用于存储整数,并提供插入元素的功能。首先,我们需要定义一个结构体表示整型元素以及一个动态大小的数组来存储顺序表。这里假设我们已经有一个宏`MAX`定义了最大长度。
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表结构体,包含整型元素和长度
typedef struct {
int* elements; // 整型元素指针
int length;
} SeqList;
// 动态分配顺序表内存
SeqList* createList(int maxLen) {
SeqList* list = (SeqList*)malloc(sizeof(SeqList));
list->elements = (int*)malloc(maxLen * sizeof(int));
list->length = 0;
return list;
}
// 插入元素到指定下标
void insertElement(SeqList* list, int pos, int e) {
if (pos < 0 || pos > list->length) {
printf("Invalid index!\n");
return;
}
// 如果已满,需要先扩展数组
if (list->length == MAX - 1) {
int newMax = MAX * 2;
list->elements = (int*)realloc(list->elements, newMax * sizeof(int));
}
// 将元素移动一位来空出空间
for (int i = list->length; i >= pos; i--) {
list->elements[i] = list->elements[i - 1];
}
// 插入新元素
list->elements[pos] = e;
list->length++;
}
// 示例如何使用
int main() {
SeqList* myList = createList(MAX);
insertElement(myList, 2, 10); // 在索引2处插入元素10
// ... 其他操作 ...
free(myList->elements);
free(myList);
return 0;
}
```
阅读全文