C语言malloc创建链表怎么实现

   2025-02-13 2130
核心提示:创建链表可以通过malloc函数来分配内存,并且通过指针来进行节点之间的连接。下面是一个使用malloc函数创建链表的实例:#include

创建链表可以通过malloc函数来分配内存,并且通过指针来进行节点之间的连接。下面是一个使用malloc函数创建链表的实例:

#include <stdio.h>#include <stdlib.h>// 定义链表节点结构typedef struct Node {    int data;    struct Node* next;} Node;// 创建链表函数Node* createList(int n) {    Node* head = NULL;    Node* temp = NULL;    Node* p = NULL;    int i;    for (i = 0; i < n; i++) {        temp = (Node*)malloc(sizeof(Node)); // 分配节点内存        printf("输入第 %d 个节点的值: ", i+1);        scanf("%d", &temp->data);        temp->next = NULL;        if (head == NULL) {            head = temp;        } else {            p = head;            while (p->next != NULL) {                p = p->next;            }            p->next = temp;        }    }    return head;}// 打印链表函数void printList(Node* head) {    Node* p = head;    printf("链表的值为: ");    while (p != NULL) {        printf("%d ", p->data);        p = p->next;    }    printf("\n");}int main() {    int n;    Node* head = NULL;    printf("输入链表的节点个数: ");    scanf("%d", &n);    head = createList(n);    printList(head);    return 0;}

以上代码首先定义了一个Node结构体,包含一个整型数据和一个指向下一个节点的指针。然后通过createList函数使用malloc动态分配内存来创建链表,并通过指针将各个节点连接起来。最后通过printList函数打印链表的值。

在main函数中,首先输入链表的节点个数,然后调用createList函数创建链表,并通过printList函数打印链表的值。

注意,使用malloc创建链表后,需要在不需要链表时,手动释放内存,避免内存泄漏。可以通过循环遍历链表,使用free函数释放每个节点的内存,最后再将头节点的内存释放掉。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言