依次顺序表采用头插法插入元素-1,21,13,24,8,用C代码写出来
时间: 2024-09-07 16:05:56 浏览: 65
头插法指的是在顺序表(通常使用数组实现)的开头插入新元素,即将新元素插入到数组的第一个位置,并将原有元素依次向后移动。以下是使用C语言实现头插法插入元素的代码示例:
```c
#include <stdio.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 存储顺序表的数组
int length; // 顺序表当前长度
} SeqList;
// 头插法插入元素
void HeadInsert(SeqList *list, int elem) {
if (list->length >= MAXSIZE) {
// 顺序表已满,无法插入
printf("List is full, cannot insert!\n");
return;
}
// 将顺序表中现有的所有元素向后移动一位
for (int i = list->length; i > 0; --i) {
list->data[i] = list->data[i - 1];
}
// 将新元素插入到数组的第一个位置
list->data[0] = elem;
// 顺序表长度加1
list->length++;
}
int main() {
SeqList list = {{-1, 21, 13, 24, 8}, 5}; // 初始化顺序表,包含初始元素
int elements[] = {-1, 21, 13, 24, 8}; // 需要插入的元素数组
// 依次头插法插入元素
for (int i = 0; i < 5; ++i) {
HeadInsert(&list, elements[i]);
}
// 打印插入新元素后的顺序表
for (int i = 0; i < list.length; ++i) {
printf("%d ", list.data[i]);
}
printf("\n");
return 0;
}
```
这段代码首先定义了一个顺序表的结构体`SeqList`,包括一个数组`data`来存储数据和一个`length`来记录当前顺序表的长度。`HeadInsert`函数实现了头插法的功能,它首先检查顺序表是否已满,然后将所有现有元素向后移动一位,最后将新元素插入到数组的首位,并更新顺序表的长度。
在`main`函数中,我们初始化了一个顺序表,并且依次使用头插法插入了给定的元素数组`elements`中的元素。最终,打印出插入新元素后的顺序表内容。
阅读全文