c语言简单代码,devc++请定义一个整形数组,例如:ElemType data[9] = { 11,-22,33,-3,-88,21,77,0,-9 };将其插入顺序表,并在表中完成顺序表的基本操作功能实现(删除、增加、查找、取值等)。
时间: 2024-09-29 21:03:25 浏览: 53
在Dev-C++中,我们可以使用结构体定义一个简单的顺序表,包括整型数据和指针用于存储元素。这里是一个基础的顺序表实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表结构体
typedef struct {
int* data; // 存储整数的指针
int size; // 当前元素的数量
int capacity; // 数组的容量
} List;
// 初始化顺序表
void initList(List* list) {
list->data = (int*)malloc(sizeof(int) * list->capacity);
list->size = 0;
list->capacity = 9; // 初始容量设为9
}
// 插入元素到列表末尾
void insert(List* list, int value) {
if (list->size == list->capacity) {
list->capacity *= 2; // 当满时,容量翻倍
list->data = (int*)realloc(list->data, sizeof(int) * list->capacity);
}
list->data[list->size++] = value;
}
// 删除指定索引的元素
void delete(List* list, int index) {
if (index >= 0 && index < list->size) {
for (int i = index; i < list->size - 1; ++i)
list->data[i] = list->data[i + 1];
list->size--;
if (list->size < list->capacity / 4) {
list->capacity /= 2; // 当空间利用率低时,减小容量
list->data = (int*)realloc(list->data, sizeof(int) * list->capacity);
}
}
}
// 查找并返回指定值的索引,若不存在则返回-1
int search(List* list, int value) {
for (int i = 0; i < list->size; ++i)
if (list->data[i] == value)
return i;
return -1;
}
// 获取并打印列表中的元素
void printList(List* list) {
for (int i = 0; i < list->size; ++i)
printf("%d ", list->data[i]);
printf("\n");
}
int main() {
List list;
initList(&list);
// 插入初始数据
for (int i = 0; i < 9; ++i) {
insert(&list, i);
}
// 打印插入的数据
printList(&list);
// 示例操作
int index = search(&list, 55); // 查找55的位置
if (index != -1)
printf("找到55,位置: %d\n", index);
else
printf("未找到55\n");
delete(&list, 2); // 删除索引为2的元素
// 打印更新后的列表
printList(&list);
return 0;
}
```
注意这只是一个基础示例,实际项目中可能需要处理更复杂的边界情况和错误检查。此外,对于大型应用,可以考虑使用动态内存管理库(如STL)提供的容器来替代自定义的顺序表。
阅读全文