用c语言编写一个单链表
时间: 2024-09-22 10:10:02 浏览: 49
在 C 语言中,我们可以用 struct 定义链表节点,并通过头指针(head)来管理整个链表。下面是一个简单的单向链表的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构体
typedef struct Node {
int data; // 数据域
struct Node* next; // 指向下一个节点的指针
} Node;
// 创建新节点并初始化
Node* createNode(int value) {
Node* newNode = (Node*)malloc(sizeof(Node));
if (newNode != NULL) {
newNode->data = value;
newNode->next = NULL; // 初始状态下,下一个节点为空
return newNode;
}
printf("Memory allocation failed.\n");
return NULL;
}
// 插入节点到链表头部
void insertAtHead(Node** head, int value) {
Node* newNode = createNode(value);
if (newNode != NULL) {
newNode->next = *head;
*head = newNode;
}
}
// 打印链表
void printList(Node* head) {
while (head != NULL) {
printf("%d -> ", head->data);
head = head->next;
}
printf("NULL\n");
}
int main() {
Node* head = NULL;
// 插入一些节点
insertAtHead(&head, 10);
insertAtHead(&head, 20);
insertAtHead(&head, 30);
// 打印链表
printList(head);
return 0;
}
```
这个程序首先创建了一个链表的头指针 `head`,然后添加了三个整数值节点。`insertAtHead` 函数用于在链表头部插入新节点,`printList` 函数则打印出链表的内容。
阅读全文