有序顺序表的插入c语言代码
时间: 2024-10-27 11:05:22 浏览: 13
C语言实现顺序表基本操作汇总
在C语言中,有序顺序表(通常是指数组实现的线性表)的插入操作需要首先查找合适的位置将新元素放入,保持原有的排序。这里是一个简单的示例,假设我们有一个整数类型的有序顺序表,并使用冒泡排序法找到插入位置:
```c
#include <stdio.h>
// 插入函数,使用冒泡排序法寻找插入位置
void insert(int arr[], int n, int value) {
int i;
for (i = 0; i < n; ++i) { // 遍历已排序部分
if (arr[i] > value) { // 如果当前元素大于value,说明找到了插入位置
break;
}
}
// 将新值插入到正确位置
memmove(&arr[i+1], &arr[i], (n-i) * sizeof(int)); // 移动元素
arr[i] = value; // 插入新值
}
// 测试插入
int main() {
int arr[] = {1, 3, 5, 7, 9};
int n = sizeof(arr) / sizeof(arr[0]);
int value = 4;
printf("Before insertion:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
insert(arr, n, value);
printf("\nAfter inserting %d:\n", value);
for (int i = 0; i < n + 1; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
阅读全文