以下是一个使用 C 语言实现简单内核链表的示例代码:
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
函数中进行了简单的测试。