用C语言编写递增顺序表,使之插入元素之后仍递增有序
时间: 2024-09-09 14:05:20 浏览: 44
递增链表_c语言、链表_
用C语言编写一个递增顺序表并实现插入功能,首先需要定义一个顺序表的结构体,通常包括数组和一个用于记录当前元素个数的整数。在插入新元素时,需要从数组的末尾开始,将所有比新元素大的元素向后移动一位,然后将新元素插入到正确的位置。这样做可以确保顺序表在插入元素后仍然保持递增有序。下面是具体的实现代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表的最大长度
#define MAX_SIZE 100
// 顺序表的结构体定义
typedef struct {
int data[MAX_SIZE]; // 存储顺序表元素的数组
int length; // 顺序表当前长度
} SeqList;
// 初始化顺序表
void InitList(SeqList *list) {
list->length = 0;
}
// 向顺序表中插入元素,并保持递增顺序
int InsertElement(SeqList *list, int element) {
// 检查顺序表是否已满
if (list->length >= MAX_SIZE) {
return -1; // 顺序表已满,无法插入
}
// 从数组末尾开始,向后移动元素直到找到正确的插入位置
int i;
for (i = list->length - 1; (i >= 0) && (list->data[i] > element); i--) {
list->data[i + 1] = list->data[i]; // 向后移动元素
}
// 插入新元素
list->data[i + 1] = element;
list->length++; // 长度加1
return 0; // 插入成功
}
// 打印顺序表中的元素
void PrintList(SeqList *list) {
for (int i = 0; i < list->length; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
int main() {
SeqList list;
InitList(&list);
// 向顺序表中插入元素
InsertElement(&list, 3);
InsertElement(&list, 1);
InsertElement(&list, 2);
// 打印结果
PrintList(&list);
return 0;
}
```
阅读全文