C语言笔记:链表的简单理解

文章目录

简介

(1)什么是链表?其特点是什么?
线性链表(包括单链表,双向链表,单向循环链表等多种形式,这里仅讨论单链表)是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。我们使用数组可以保存一系列相同类型的数据,但是数组的空间大小是固定不变的(编译时确定),如果数据元素的数量不确定,使用数组来存放就会非常麻烦,经常会出现存储空间浪费或者空间不够用的情况。单链表存储是动态的,其长度可以根据需要调整,且可以不受限制的增减,只有在系统内存不足时才会提示存储满了。
(2)如何创建链表?链表的是结构如何的?
链表由每个结点为单位相连接而成,其中一个结点(通常在C语言中需要为结点声明一个结构体类型)包括两部分:存储数据元素数据域和存储下一个结点地址指针域。/font>

以下图示基于下面代码的运行结果:
在这里插入图片描述
该图链表共有两个结点,每个结点都有两个成员,一个是存储整型数据的数据域,一个是存储下一个结点地址的指针域。head是指针类型,称为头指针,存储第一个结点的地址。最后一个结点的指针部分是NULL,最后一个结点也称为单链表的尾结点。要检测一个结点是不是尾结点,只要看它的指针域是不是NULL。NULL表示地址值为0,不指向任何结点。
(3)如何对链表增加新的结点?
可以通过链表头部或链表尾插入新结点,通常的做法还在链表头部增加新元素,但如果是从链表尾插入新结点时,必须从链表头到链表尾遍历整个链表才行,当然,也可以从链表中间插入新结点,总的来说,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值