c语言使用结构体实现线性表的定义
时间: 2024-05-10 07:21:02 浏览: 129
在C语言中,可以使用结构体来实现线性表的定义。以下是一个示例:
```
#include <stdio.h>
#define MAX_SIZE 100
struct List {
int data[MAX_SIZE];
int length;
};
void initList(struct List *list) {
list->length = 0;
}
void insert(struct List *list, int index, int value) {
if (index < 0 || index > list->length || list->length == MAX_SIZE) {
printf("插入数据失败!\n");
return;
}
for (int i = list->length - 1; i >= index; i--) {
list->data[i + 1] = list->data[i];
}
list->data[index] = value;
list->length++;
}
void delete(struct List *list, int index) {
if (index < 0 || index >= list->length) {
printf("删除数据失败!\n");
return;
}
for (int i = index; i < list->length - 1; i++) {
list->data[i] = list->data[i + 1];
}
list->length--;
}
void printList(struct List *list) {
if (list->length == 0) {
printf("空表!\n");
return;
}
printf("线性表:");
for (int i = 0; i < list->length; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
int main() {
struct List list;
initList(&list);
insert(&list, 0, 1);
insert(&list, 1, 3);
insert(&list, 1, 2);
printList(&list);
delete(&list, 1);
printList(&list);
return 0;
}
```
在这个示例中,我们定义了一个结构体`List`,其中包含一个整型数组`data`和一个整型变量`length`。`data`用来存储线性表中的数据,`length`表示当前线性表中的元素个数。
我们还定义了几个函数来实现线性表的操作,包括初始化线性表、插入数据、删除数据和打印线性表。
在`main`函数中,我们先初始化了线性表,然后插入了三个数据,再打印出当前线性表的内容。接着,我们删除了索引为1的数据,再次打印线性表,可以看到删除成功。
阅读全文