c语言链表所有操作 代码实现
时间: 2023-03-30 11:02:26 浏览: 119
链表是一种常见的数据结构,C 语言中可以通过指针来实现链表。链表的常见操作包括:创建链表、插入节点、删除节点、遍历链表等。下面是链表的代码实现:
// 定义链表节点结构体
typedef struct Node {
int data; // 节点数据
struct Node* next; // 指向下一个节点的指针
} Node;
// 创建链表
Node* createList() {
Node* head = (Node*)malloc(sizeof(Node)); // 创建头节点
head->next = NULL; // 头节点的下一个节点为空
return head;
}
// 插入节点
void insertNode(Node* head, int data) {
Node* newNode = (Node*)malloc(sizeof(Node)); // 创建新节点
newNode->data = data; // 设置新节点的数据
newNode->next = head->next; // 将新节点插入到头节点之后
head->next = newNode;
}
// 删除节点
void deleteNode(Node* head, int data) {
Node* p = head->next;
Node* pre = head;
while (p != NULL) {
if (p->data == data) {
pre->next = p->next; // 将前一个节点的指针指向后一个节点
free(p); // 释放被删除的节点
return;
}
pre = p;
p = p->next;
}
}
// 遍历链表
void traverseList(Node* head) {
Node* p = head->next;
while (p != NULL) {
printf("%d ", p->data);
p = p->next;
}
}
// 主函数
int main() {
Node* head = createList(); // 创建链表
insertNode(head, 1); // 插入节点
insertNode(head, 2);
insertNode(head, 3);
deleteNode(head, 2); // 删除节点
traverseList(head); // 遍历链表
return ;
}
阅读全文