C语言创建链表: 从数组到带头指针的单链表

本文将介绍如何使用C语言, 将一个数组转换为带有头指针的单链表。

问题描述

给定一个数组, 编写一个函数 create_list, 该函数接收数组指针和数组大小作为参数, 返回创建好的带头指针的单链表。

代码实现

以下是使用C语言编写的代码实现:c#include <stdio.h>#include <stdlib.h>

typedef struct __NODE { int value; struct __NODE* next;} NODE;

NODE* create_list(int* data, int size) { NODE* head = (NODE*)malloc(sizeof(NODE)); head->next = NULL; // 头指针不存放数据, 所以置为NULL NODE* current = head; // 当前节点指针 for (int i = 0; i < size; i++) { NODE* new_node = (NODE*)malloc(sizeof(NODE)); new_node->value = data[i]; new_node->next = NULL; current->next = new_node; current = new_node; } return head;}

int main() { int data[] = {1, 2, 3, 4, 5}; int size = sizeof(data) / sizeof(int); NODE* head = create_list(data, size); // 遍历链表并打印值 NODE* current = head->next; while (current != NULL) { printf('%d ', current->value); current = current->next; } printf(' '); // 释放链表占用的内存 NODE* temp; current = head; while (current != NULL) { temp = current->next; free(current); current = temp; } return 0;}

代码解释

  1. 首先, 我们定义了 NODE 结构体, 表示链表的节点。2. 然后, 我们实现了 create_list 函数: * 首先, 分配头节点的内存, 并将头节点的 next 指针置为 NULL。 * 然后, 使用 for 循环遍历数组中的每个元素, 创建一个新的节点, 并将其连接到链表中。 * 最后, 返回头指针。3. 在 main 函数中: * 定义了一个示例数组 data。 * 调用 create_list 函数创建链表。 * 遍历链表并打印每个节点的值。 * 最后, 释放链表占用的内存。

总结

本文介绍了如何使用C语言将数组转换为带头指针的单链表, 并提供了详细的代码示例和解释。希望本文能帮助你更好地理解链表的创建过程。

C语言创建链表: 从数组到带头指针的单链表

原文地址: https://www.cveoy.top/t/topic/sGa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录