用C语言完整代码线性表的顺序存储结构初化,插入,删除操作
时间: 2024-09-27 13:09:31 浏览: 68
C语言线性表顺序存储结构实例详解
5星 · 资源好评率100%
在C语言中,线性表的顺序存储结构通常通过数组来实现。以下是使用数组表示动态数组(初始化、插入和删除)的基本示例:
```c
#include <stdio.h>
#define MAX_SIZE 10 // 定义数组的最大容量
// 结构体声明
typedef struct Node {
int data; // 数据域
struct Node* next; // 指针域,指向下一个元素
} Node;
// 初始化函数
Node* initList() {
Node* list = (Node*)malloc(MAX_SIZE * sizeof(Node)); // 动态分配内存
for (int i = 0; i < MAX_SIZE; i++) { // 遍历并初始化所有元素
list[i].data = 0;
list[i].next = NULL;
}
return list;
}
// 插入函数,这里我们假设要在列表开头插入
void insertAtBegin(Node** head, int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
newNode->next = *head; // 将新节点链接到头部
*head = newNode;
}
// 删除函数,同样假设我们要删除第一个元素
void deleteFromBegin(Node** head) {
if (*head != NULL) { // 判断列表是否为空
Node* temp = *head;
*head = (*head)->next; // 移除第一个元素
free(temp); // 释放已删除元素的内存
} else {
printf("List is empty.\n");
}
}
int main() {
Node* list = initList();
// 插入操作示例
insertAtBegin(&list, 5);
insertAtBegin(&list, 3);
// 删除操作示例
deleteFromBegin(&list);
// 输出当前列表(由于删除了第一个元素,只显示一个)
Node* curr = list;
while (curr != NULL) {
printf("%d -> ", curr->data);
curr = curr->next;
}
printf("NULL\n");
return 0;
}
```
阅读全文