【C语言】 单链表的实现 用malloc实现的动态内存管理

这篇博客介绍了如何使用C语言和malloc进行动态内存管理来实现单向链表。相比于顺序表,链表在节省空间和插入操作上具有优势。文章通过示例代码展示了节点的创建和插入过程。
摘要由CSDN通过智能技术生成


     链表是我们初学者经常接触到的数据结构,和顺序表相比,它节省了空间,在插入的时候节省了时间。

单链表每个节点由数据和指向下一个节点的指针构成。头部由一个head节点,尾部指针指向NULL。

如图所示:

   

而用malloc实现,就是需要插入一个节点的时候在开辟空间存放此节点。


代码实现如下:

头文件.h:

#pragma once
#define __SEQ_LIST__
#ifdef __SEQ_LIST__


#include <stdio.h>
#include<malloc.h&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单链表是一种常见的数据结构,用于存储一系列元素,每个元素包含一个值和一个指向下一个元素的指针。下面是 C 语言实现单链表的初始化和创建代码示例: 1.初始化单链表 ```c #include <stdio.h> #include <stdlib.h> /*定义单链表节点结构体*/ typedef struct node{ int data; //数据域 struct node *next; //指向下一个节点的指针 }Node,*pNode; /*初始化单链表*/ pNode InitList(){ pNode head = (pNode)malloc(sizeof(Node)); //创建头节点 if(head == NULL){ printf("初始化失败,内存分配失败!\n"); exit(-1); } head->next = NULL; //初始化头节点的指针域为 NULL return head; } ``` 2.创建单链表 ```c /*创建单链表*/ pNode CreateList(pNode head){ pNode p = head; //定义一个指针 p 指向头节点 int num; //定义一个变量用于存储节点的值 printf("请输入节点的值,输入 -1 结束:\n"); while(1){ scanf("%d",&num); if(num == -1){ //输入 -1 时结束 break; } pNode new_node = (pNode)malloc(sizeof(Node)); //创建新节点 if(new_node == NULL){ printf("创建失败,内存分配失败!\n"); exit(-1); } new_node->data = num; //给新节点赋值 new_node->next = NULL; //初始化新节点的指针域为 NULL p->next = new_node; //将新节点添加到链表尾部 p = new_node; //指针 p 指向新节点,准备添加下一个节点 } return head; } ``` 以上代码实现单链表的初始化和创建。初始化函数 `InitList()` 用于创建头节点并初始化,`CreateList()` 用于创建链表并添加节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值