用c 建立一个线性表
时间: 2024-05-19 21:10:29 浏览: 77
你可以使用C语言中的结构体来建立一个线性表。下面是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义线性表的结构体
typedef struct {
int* data; // 存储元素的数组
int length; // 线性表的长度
int capacity; // 线性表的容量
} LinearList;
// 初始化线性表
void initList(LinearList* list, int capacity) {
list->data = (int*)malloc(capacity * sizeof(int));
list->length = 0;
list->capacity = capacity;
}
// 插入元素到线性表中
int insert(LinearList* list, int index, int element) {
if (index < 0 || index > list->length) {
return 0; // 插入位置无效
}
if (list->length >= list->capacity) {
return 0; // 线性表已满,无法插入
}
for (int i = list->length - 1; i >= index; i--) {
list->data[i + 1] = list->data[i]; // 后移元素
}
list->data[index] = element;
list->length++;
return 1; // 插入成功
}
// 删除线性表中指定位置的元素
int delete(LinearList* list, int index) {
if (index < 0 || index >= list->length) {
return 0; // 删除位置无效
}
for (int i = index; i < list->length - 1; i++) {
list->data[i] = list->data[i + 1]; // 前移元素
}
list->length--;
return 1; // 删除成功
}
// 获取线性表中指定位置的元素
int get(LinearList* list, int index) {
if (index < 0 || index >= list->length) {
return -1; // 获取位置无效
}
return list->data[index];
}
// 输出线性表中的元素
void printList(LinearList* list) {
printf("Linear List: ");
for (int i = 0; i < list->length; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
// 释放线性表的内存
void destroyList(LinearList* list) {
free(list->data);
}
int main() {
LinearList list;
initList(&list, 10);
insert(&list, 0, 1);
insert(&list, 1, 2);
insert(&list, 2, 3);
printList(&list); // 输出: Linear List: 1 2 3
delete(&list, 1);
printList(&list); // 输出: Linear List: 1 3
destroyList(&list);
return 0;
}
```
这个示例代码使用了一个结构体 `LinearList` 来表示线性表,其中包含一个整型指针 `data` 来存储元素的数组,`length` 表示线性表的长度,`capacity` 表示线性表的容量。你可以使用 `initList` 函数来初始化线性表,使用 `insert` 函数来插入元素,使用 `delete` 函数来删除元素,使用 `get` 函数来获取元素,使用 `printList` 函数来输出线性表中的元素,最后使用 `destroyList` 函数来释放线性表的内存。
在主函数中,我们创建了一个容量为10的线性表,并插入了一些元素,然后输出线性表的内容,再删除一个元素,最后释放线性表的内存。你可以根据自己的需求修改这个代码,并添加其它操作来完善线性表的功能。
阅读全文