| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 数据结构——线性表的链式存储 -> 正文阅读 |
|
[数据结构与算法]数据结构——线性表的链式存储 |
? 通常采用链式存储结构的线性表称为线性链表。从链式方式的角度看,链表可以分为单链表,循环链表和双链表。 1.单链表? 链表是用一组任意存储单元来存放线性表的结点,这组存储单元可以是连续的,也可以是非连续的,甚至是零散分布在内存的任何位置上。因此,链表中结点的逻辑顺序和物理顺序不一定相同。 ? 结点包括两个域:数据域用来存储结点的值,指针域用来存储数据元素的直接后继的地址。线性链表正是通过每个结点的指针域将线性表的n个结点按其逻辑顺序连接在一起。又因为线性链表的每个结点只有一个next指针域,所以这种链表称为单链表。 ? 单链表中每个结点的存储地址存放在其前驱结点的指针域中,由于线性表的第一个结点无直接前驱,所以应设置一个头指针指向第一个结点。由于线性表的最后一个结点没有直接后继,则指定单链表的最后一个结点的指针域为null. ? 一般情况下,使用链表,只关心链表中结点的逻辑顺序,并不关心每个结点的实际存储位置。 单链表的存储结构描述:
?LinkList与Node *同为结构指针类型,这两种类型是等价的。通常习惯上用LinkList说明指针变量,强调它是某个单链表的头指针变量。LinkList L ,此时L为单链表的头结点,提高了程序的可读性。用Node *来定义指向单链表中结点的指针,像Node * p,则p为指向单链表中的指针变量。注意一个为头指针变量,一个为单链表中的结点。 L是单链表的头指针,它指向表中第一个结点(对于带头结点的单链表,则指向单链表的头结点),若L == NULL(对于带头结点的单链表为L->next == NULL)表达式为真,则表示单链表为一个空表,长度为0.若是非空表,则可以通过头指针L访问表中结点,从而找到要访问的所有结点的数据信息。例如,对于带头结点的单链表L,令p=L->next,则p指向表中的第一个元素结点,通过p->data就可以访问到表中第一个元素的数据值了。 2.单链表上的基本运算?2.1初始化单链表
注意: L是指向单链表的头结点的指针,用来接收主程序中待初始化单链表的头指针变量的地址 * L相当于主程序中待初始化单链表的头指针变量 2.2建立单链表头插法 思想: 从一个空表开始,每次读入数据,生成新的结点,将读入数据存放到新结点的数据域中,然后将新结点插入到当前链表的表头结点之后,直到读入结束标志为止。
尾插法 思想: 头插法生成的链表中结点的次序和输入的顺序相反。尾插法是将新结点插入到前单链表的表尾上。为此需要增加一个尾指针r,使其指向当前单链表的表尾
2.3查找按序号查找
按值查找
2.4求单链表长度的操作
2.5单链表的插入
2.6单链表的删除
3.循环链表循环链表(Circular Linked List)是一个首尾相连的链表,将单链表最后一个结点的指针域由NULL改为指向表头结点,得到了单链的循环链表。 单链表中判别条件为p != NULL或p->next != NULL,而单循环链表的判别条件使p != L或p->next != L ?3.1初始化循环单链表
3.2建立循环单链表
4.双向链表如果希望从表中快速确定某一个结点的前驱,一个解决办法就是在这个单链表的每个结点里再增加一个指向前驱的指针域。这样形成的链表就有两条方向不同的链,称为双向循环链表(Double Linked List)。 双链表的结构定义
4.1双向链表的前插操作
4.2双向链表的删除操作
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:33:22- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |