用c语言创建一个线性表
时间: 2023-05-30 14:01:56 浏览: 108
创建线性表C语言.docx
线性表是一种数据结构,可以用数组、链表等方式实现。以下是使用数组实现线性表的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#define CAPACITY 10 // 线性表容量
typedef struct {
int data[CAPACITY]; // 存储数据的数组
int length; // 当前线性表长度
} List;
// 初始化线性表
void initList(List *list) {
list->length = 0;
}
// 在线性表末尾添加元素
void addToList(List *list, int value) {
if (list->length == CAPACITY) {
printf("List is full.\n");
return;
}
list->data[list->length] = value;
list->length++;
}
// 在指定位置插入元素
void insertToList(List *list, int index, int value) {
if (list->length == CAPACITY) {
printf("List is full.\n");
return;
}
if (index < 0 || index > list->length) {
printf("Invalid index.\n");
return;
}
for (int i = list->length; i > index; i--) {
list->data[i] = list->data[i-1];
}
list->data[index] = value;
list->length++;
}
// 从线性表中删除指定位置的元素
void removeFromList(List *list, int index) {
if (index < 0 || index >= list->length) {
printf("Invalid index.\n");
return;
}
for (int i = index; i < list->length-1; i++) {
list->data[i] = list->data[i+1];
}
list->length--;
}
// 获取线性表中指定位置的元素
int getFromList(List *list, int index) {
if (index < 0 || index >= list->length) {
printf("Invalid index.\n");
return 0;
}
return list->data[index];
}
// 输出线性表中的所有元素
void printList(List *list) {
for (int i = 0; i < list->length; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
int main() {
List list;
initList(&list);
addToList(&list, 1);
addToList(&list, 2);
addToList(&list, 3);
insertToList(&list, 1, 4);
removeFromList(&list, 2);
printf("Element at index 1: %d\n", getFromList(&list, 1));
printList(&list);
return 0;
}
```
这个例子中,我们定义了一个 `List` 结构体,包含一个数组和一个表示当前长度的整数。然后定义了一些常用的操作函数,如初始化、添加、插入、删除、获取和输出。在 `main` 函数中,我们创建了一个 `List` 对象,然后执行一些操作来演示线性表的使用。
阅读全文