帮我用c语言实现:用头插法完成一个链表,并打印出来
时间: 2024-09-23 15:07:43 浏览: 36
在 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) {
newNode->data = data;
newNode->next = NULL;
}
return newNode;
}
// 使用头插法在链表头部添加元素
void insertAtHead(ListNode** head, int data) {
ListNode* newNode = createNode(data);
if (*head != NULL) {
newNode->next = *head;
}
*head = newNode;
}
// 打印链表
void printList(ListNode* head) {
while (head != NULL) {
printf("%d -> ", head->data);
head = head->next;
}
printf("NULL\n");
}
int main() {
// 初始化空链表
ListNode* head = NULL;
// 插入一些元素
insertAtHead(&head, 5); // 插入数字5
insertAtHead(&head, 3); // 插入数字3
insertAtHead(&head, 7); // 插入数字7
// 打印链表
printList(head);
return 0;
}
```
在这个例子中,我们首先定义了一个 `ListNode` 结构,然后分别实现了创建新节点、在头部插入元素以及打印链表的功能。在 `main` 函数中,我们初始化了一个空链表,然后插入几个元素并打印出来。
阅读全文