数据结构C语言版代码:建立含有若干个元素的顺序表,对已建立的顺序表实现插入、删除等操作。写出C语言代码
时间: 2024-09-14 15:08:03 浏览: 57
数据结构 顺序表的插入与删除算法的C语言实现
4星 · 用户满意度95%
在C语言中,我们可以使用数组作为基础数据结构来创建一个简单的顺序表。这里是一个基本的顺序表实现,包括初始化、插入和删除操作:
```c
#include <stdio.h>
#define MAX_SIZE 10 // 定义顺序表的最大容量
// 结构体表示列表中的一个节点
typedef struct Node {
int data; // 节点存储的数据
struct Node* next; // 指向下一个节点的指针
} Node;
// 初始化顺序表
void initialize(Node** list) {
*list = (Node*)malloc(sizeof(Node)); // 分配空间给头结点
(*list)->data = -1; // 初始化为空
(*list)->next = NULL;
}
// 插入操作
void insert(Node** list, int value) {
if ((*list) == NULL) {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
newNode->next = NULL;
*list = newNode;
} else {
Node* newNode = (Node*)malloc(sizeof(Node));
newNode->data = value;
newNode->next = *list;
*list = newNode;
}
}
// 删除操作(假设我们有一个函数find用于查找特定值的节点)
void delete(Node** list, int value) {
if (*list != NULL && (*list)->data == value) {
Node* temp = *list;
*list = (*list)->next;
free(temp);
} else {
Node* current = *list;
while (current != NULL && current->data != value) {
current = current->next;
}
if (current != NULL) {
Node* temp = current->next;
free(current);
current = temp;
}
}
}
// 打印顺序表
void print_list(Node* list) {
Node* temp = list;
while (temp != NULL) {
printf("%d -> ", temp->data);
temp = temp->next;
}
printf("NULL\n");
}
int main() {
Node* list;
initialize(&list);
// 插入元素
insert(&list, 1);
insert(&list, 2);
insert(&list, 3);
// 打印初始顺序表
print_list(list);
// 删除元素
delete(&list, 2);
// 再次打印顺序表
print_list(list);
return 0;
}
```
阅读全文