用c语言编写程序,实现线性表的插入、删除、查找操作
时间: 2024-09-26 18:03:42 浏览: 39
线性表通信录【c语言实现】.pdf
5星 · 资源好评率100%
在C语言中,我们可以使用数组或者动态内存分配的数据结构(如链表)来实现线性表的操作。这里以单链表为例,因为它的插入、删除和查找操作相对简单。
1. **插入操作** (在链表末尾插入):
```c
typedef struct Node {
int data;
struct Node* next;
} Node;
void insert(Node** head, int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if(newNode == NULL) {
printf("Memory allocation failed.\n");
return;
}
newNode->data = value;
newNode->next = *head;
*head = newNode;
}
```
2. **删除操作** (根据值删除节点):
```c
void delete(Node** head, int value) {
Node* current = *head;
Node* previous = NULL;
while(current != NULL && current->data != value) {
previous = current;
current = current->next;
}
if(current == NULL) return; // 如果未找到,则返回
if(previous == NULL) *head = current->next; // 如果是最开始,头结点指针改变
else previous->next = current->next;
free(current); // 释放已删除节点的内存
}
```
3. **查找操作** (按值查找节点):
```c
Node* search(Node* head, int value) {
Node* current = head;
while(current != NULL) {
if(current->data == value) return current;
current = current->next;
}
return NULL; // 如果没找到,返回NULL
}
```
注意:以上代码仅适用于单向链表,如果你需要双向链表或其他特定类型的操作,可能需要调整代码。
阅读全文