以下是一个使用 C 语言实现简单内核链表的示例代码:
#include <stdio.h>
#include <stdlib.h>// 定义链表节点结构体
typedef struct ListNode {int data;struct ListNode *next;
} ListNode;// 创建新节点
ListNode* createNode(int data) {ListNode* newNode = (ListNode*)malloc(sizeof(ListNode));if (newNode == NULL) {printf("内存分配失败\n");return NULL;}newNode->data = data;newNode->next = NULL;return newNode;
}// 插入节点到链表头部
void insertAtHead(ListNode** head, int data) {ListNode* newNode = createNode(data);newNode->next = *head;*head = newNode;
}// 打印链表
void printList(ListNode* head) {ListNode* current = head;while (current!= NULL) {printf("%d ", current->data);current = current->next;}printf("\n");
}// 释放链表内存
void freeList(ListNode* head) {ListNode* current = head;ListNode* temp;while (current!= NULL) {temp = current;current = current->next;free(temp);}
}int main() {ListNode* head = NULL;insertAtHead(&head, 10);insertAtHead(&head, 20);insertAtHead(&head, 30);printf("链表: ");printList(head);freeList(head);return 0;
}
在上述代码中,我们定义了链表节点结构体 ListNode
,实现了创建节点、插入节点到头部、打印链表和释放链表内存的函数。在 main
函数中进行了简单的测试。