生成实现顺序表的增删查找的c语言代码
时间: 2024-11-20 10:56:43 浏览: 24
在C语言中,我们可以创建一个简单的顺序表结构来实现增、删、查操作。这里是一个基本的例子,我们使用单链表作为顺序存储:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表节点结构体
typedef struct Node {
int data;
struct Node* next;
} ListNode;
// 初始化空链表
ListNode* createList() {
return (ListNode*)malloc(sizeof(ListNode));
}
// 插入元素到列表尾部
void insert(ListNode** head, int value) {
ListNode* newNode = createList();
newNode->data = value;
newNode->next = *head;
*head = newNode;
}
// 查找元素
ListNode* search(ListNode* head, int target) {
ListNode* current = head;
while (current != NULL && current->data != target) {
current = current->next;
}
return current;
}
// 删除元素(如果找到则删除)
void deleteElement(ListNode** head, int target) {
if (*head == NULL || (*head)->data != target) {
return; // 如果链表为空或者目标值不在头部,直接返回
}
ListNode* temp = *head;
*head = (*head)->next;
free(temp);
}
// 打印链表
void printList(ListNode* head) {
ListNode* current = head;
while (current != NULL) {
printf("%d ", current->data);
current = current->next;
}
printf("\n");
}
int main() {
ListNode* listHead = createList(); // 创建空链表
// 添加元素
insert(&listHead, 10);
insert(&listHead, 20);
insert(&listHead, 30);
// 查找元素
ListNode* foundNode = search(listHead, 20);
if (foundNode != NULL)
printf("Found %d at position.\n", foundNode->data);
else
printf("Element not found.\n");
// 删除元素
deleteElement(&listHead, 20); // 删除20
printList(listHead); // 打印修改后的链表
return 0;
}
```
阅读全文