数据结构-链式表之单链表

本文详细介绍了链表的定义,包括链表的特点、数据元素结构、头节点和头指针的概念。接着,通过C语言展示了链表的程序实现,包括结构体定义、创建结点、插入、删除等基本操作。最后,总结了链表相对于顺序表的优势,如灵活的内存管理和快速的插入删除操作。
摘要由CSDN通过智能技术生成

目录

一、定义:

1、链表特点:

2、链表内数据元素结构:

3、头节点、头指针

 二、程序实现

1、结构体定义

2、函数定义

3、创建结点

4、尾插函数

5、头插函数

6、尾删函数

7、头删函数

8、查找某一个值位置并插入值。

三、总结


一、定义:

逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着。恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储。

1、链表特点:

        由于分散存储,为了能够体现出数据元素之间的逻辑关系,每个数据元素在存储的同时,要配备一个指针,用于指向它的直接后继元素,即每一个数据元素都指向下一个数据元素(最后一个指向NULL(空))。

2、链表内数据元素结构:

  1. 本身的信息,称为“数据域”;
  2. 指向直接后继的指针,称为“指针域”。

 

这两部分信息组成数据元素的存储结构,称之为“结点”。n个结点通过指针域相互链接,组成一个链表。

 图 3 中,由于每个结点中只包含一个指针域,生成的链表又被称为 线性链表 或 单链表。

3、头节点、头指针

头结点:有时,在链表的第一个结点之前会额外增设一个结点,结点的数据域一般不存放数据(有些情况下也可以存放链表的长度等信息),此结点被称为头结点。

若头结点的指针域为空(NULL),表明链表是空表。头结点对于链表来说,不是必须的,在处理某些问题时,给链表添加头结点会使问题变得简单。

 首元结点:链表中第一个元素所在的结点,它是头结点后边的第一个结点。

头指针:永远指向链表中第一个结点的位置(如果链表有头结点,头指针指向头结点;否则,头指针指向首元结点)。

头结点和头指针的区别:头指针是一个指针,头指针指向链表的头结点或者首元结点;头结点是一个实际存在的结点,它包含有数据域和指针域。两者在程序中的直接体现就是:头指针只声明而没有分配存储空间,头结点进行了声明并分配了一个结点的实际物理内存。

单链表可以没有头节点,但是不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值