线性表检索操作c语言编写
时间: 2023-10-25 14:08:09 浏览: 114
以下是一个简单的线性表检索操作的C语言代码示例:
```c
#include <stdio.h>
#define MAX_SIZE 1000 // 最大线性表长度
typedef struct {
int data[MAX_SIZE]; // 线性表数据
int length; // 线性表长度
} SeqList;
// 初始化线性表
void init(SeqList *list) {
list->length = 0;
}
// 插入元素
void insert(SeqList *list, int index, int data) {
if (list->length == MAX_SIZE) {
printf("Error: list is full.\n");
return;
}
if (index < 0 || index > list->length) {
printf("Error: invalid index.\n");
return;
}
for (int i = list->length - 1; i >= index; i--) {
list->data[i + 1] = list->data[i];
}
list->data[index] = data;
list->length++;
}
// 删除元素
void remove(SeqList *list, int index) {
if (index < 0 || index >= list->length) {
printf("Error: invalid index.\n");
return;
}
for (int i = index; i < list->length - 1; i++) {
list->data[i] = list->data[i + 1];
}
list->length--;
}
// 查找元素
int search(SeqList *list, int data) {
for (int i = 0; i < list->length; i++) {
if (list->data[i] == data) {
return i;
}
}
return -1; // 没有找到
}
// 输出线性表
void printList(SeqList *list) {
printf("List: ");
for (int i = 0; i < list->length; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
int main() {
SeqList list;
init(&list);
insert(&list, 0, 1);
insert(&list, 1, 2);
insert(&list, 2, 3);
insert(&list, 1, 4);
printList(&list); // List: 1 4 2 3
remove(&list, 2);
printList(&list); // List: 1 4 3
int index = search(&list, 4);
if (index != -1) {
printf("Found at index %d.\n", index); // Found at index 1.
} else {
printf("Not found.\n");
}
return 0;
}
```
该代码定义了一个结构体 `SeqList` 表示线性表,包含一个数组 `data` 和一个整数 `length` 表示线性表长度。其中,`init` 函数用于初始化线性表,`insert` 函数用于插入元素,`remove` 函数用于删除元素,`search` 函数用于查找元素,`printList` 函数用于输出线性表。在 `main` 函数中,首先初始化线性表,然后依次插入元素,输出线性表,删除元素,输出线性表,查找元素并输出结果。
阅读全文