C语言线性存储结构---单链表

链表

简介:

单链表作为一个最基本的数据结构,是每一个小伙伴学习数据结构之路上的一个小小的开端,在这里我们就来了解一下什么是单链表。
单链表,顾名思义,他是一个想链子一样的结构,将每一个元素链接在一起,其中,每一个元素又叫做一个结点。链表实际上是物理地址上不连续,逻辑上连续的一种数据结构,每一个结点的连接是通过指针进行连接的,如果小伙伴还没有学习指针一定要先了解指针哦

图形表示

在这里插入图片描述

当然链表还有双向链表,循环链表等等,不过本文只做单链表的演示。

链表和数组的区别

1.链表是通过动态分配空间的,数组是固定空间大小的
2.数组的内存连续,而链表的内存是不连续的
3. 查找元素的时候,数组是通过下标定位的,时间复杂度为O(1),链表则是通过遍历找到元素的,时间复杂度为O(n).
4. 数组插入删除等操作需要移动,时间复杂度为O(n), 链表则不需要移动,只需要改变指针即可,时间复杂度为O(1).

代码实现

存储方式

链表的每一个结点存储方式是通过结构进行实现的

typedef struct Node
{
   
    int data;  //数据域
    struct Node* pNext;  //指针域
}List;

接下来实现链表增删改查四种基本操作

  1. 链表添加节点
List* GetNode(int num)
{
   
    List* pTemp = NULL;
    pTemp = (List*)malloc(sizeof(List));
    pTemp->data = num;
    pTemp->pNext = NULL;
    return pTemp;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值