C/C++编程笔记:数据结构难点之单链表!一篇文章带你突破难点

数据结构之单链表

单链表是一种链式存取的数据结构,用一组地址任意的存储单元 存放线性表中的数据元素 。链表中的数据是以结点来表示的,每一个结点的构成:元素( 数据元素 的映象) + 指针 (指示后继元素存储位置),元素就是存储数据的存储单元,指针就是链接每一个结点的地址数据。编程

介绍:单链表就是结构体变量和结构体变量 经过指针成员链接在一块儿,故:单链表就是多个结构体变量。微信

链表分类

根据链表有无头结点,指针是是否双向,链表是否环状,咱们把链表分为如下几种:数据结构

带头结点单链表。函数

无头结点单链表。学习

双向链表。测试

双向循环链表。设计

单链表操做

带头结点的链式结构主要有如下常规操做:3d

建立链表:建立头结点。指针

建立结点:为插入作准备。视频

表头插入。

表尾插入。

指定位置插入。

表头删除。

表尾删除。

指定位置删除。

链表的打印。

插曲:指针如何当作变量使用?

经过赋值变量的地址。

经过动态内存申请。

代码以下:

结构体定义

数据结构中的结构体设计, 通常都是单一个体的抽象,即把整个结构拆开的零件。

建立表头

单链表就是结构体变量和结构体变量 经过指针成员链接在一块儿,故若是定义一个函数去建立链表,其实就是建立表头,表头也是一个结构体变量,故就是建立结构体变量的过程,而后数据结构通常习惯用指针去表示,指针变成变量,故经过动态内存是申请便可变成变量,最后只须要给变量初始化便可。

单链表的建立表头源码:

建立节点

建立结点单独用一个函数封装,为插入节点作准备,结点也是结构体变量,相对于表头只是多了一个数据域,而数据能够形参传进去,这样就能够实现数据加工,加工为一个结点数据。

单链表的结点建立代码:

表头法插入

由于是一个有表头的链表,故表头位置不可改变,插入结点只能放在表头后面。表头就像讲台,学生座位怎么排,都只能放在讲台后面,不能排到讲台前面去。

单链表的表头插入代码:

表尾插入

表尾插入,首先找到表尾,而后把插入的结点放到表尾结点后面便可。

单链表的表尾插入代码:

指定位置插入

只要找到指定位置与指定位置前面哪一个结点,我想每个同窗都应该会插入结点。指定位置插入问题转换为找到指定位置以及指定位置的前面哪一个结点。

单链表的指定位置插入代码实现:

链表遍历

由于作的是一个有表头的链表 ,故打印数据的时候是从第二个节点开始打印,若是存在数据,打印数据,打印完后往下一个结点移动便可。就像公交车同样,过一站下一批乘客。

单链表的遍历实现:

测试检验

首先表头插入数据1,在表头插入数据3 ,链表中数据为 3 1。

在指定1前面插入2,链表中数据为3 2 1。

最后表尾插入0,链表中数据为3 2 1 0。

故打印结果是3 2 1 0

代码示例:

另外若是你想更好的提高你的编程能力,学好C语言C++编程!弯道超车,快人一步!

C语言C++编程学习交流圈子,QQ群757874045点击进入】微信公众号:C语言编程学习基地

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比本身琢磨更快哦!

编程学习软件分享:

编程学习视频分享: