数据结构(python)----线性表的链式表示和实现

目录

链式存储结构

如何实现

案例 

相关术语:

1、结点

2、链表

3、分类

4、头指针、头节点、首元结点

如何表示空表?

在链表中设置头结点有什么好处?

头结点的数据域内装的是什么?

链表(链式存储结构)的特点

单链表定义和实现

1、存储结构定义

2、基本操作的实现

1)、初始化--构造一个空表

判断是否为空

求表长

2)、建立

方法一:头插法 --数据逆序插入

​编辑

算法描述

方法二:尾插法 --正序插入

算法描述

3)、插入--插在第 i 个结点之前

算法描述

4)、删除--删除第i个元素

算法描述

5)、查找--根据指定数据获取数据所在的位置

算法描述

链表的优缺点

优点:

缺点:

顺序表和链表的比较


链式存储结构

结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻

线性表的链式表示又称为非顺序映像或链式映像。

每一个头指针对应一个单链表

如何实现

通过“指针(Python变量)”来实现

案例 

26 个英文字母表的链式存储结构
标26 个英文字母表的链式存储结构题

相关术语:

1、结点

数据元素的存储映像。

由数据域和指针域两部分组成

2、链表

n 个结点由指针链组成一个链表。它是线性表的链式存储映像,称为线性表的链式存储结构

3、分类

结点只有一个指针域的链表,称为单链表线性链表

有两个指针域的链表,称为双链表

首尾相接的链表称为循环链表

循环链表示意图
循环链表示意图

4、头指针、头节点、首元结点

头指针是指向链表中第一个结点的指针

首元结点是指链表中存储第一个数据元素a1的结点

头结点是在链表的首元结点之前附设的一个结点;数据域内只放空表标志和表长等信息

如何表示空表?

有头结点时,当头结点的指针域为空时表示空表

在链表中设置头结点有什么好处?

便于首元结点的处理

首元结点的地址保存在头结点的指针域中,所以在链表的第一个位置上的操作和其它位置一致,无须进行特殊处理;

便于空表和非空表的统一处理

无论链表是否为空,头指针都是指向头结点的非空指针,因此空表和非空表的处理也就统一了。

头结点的数据域内装的是什么?

头结点的数据域可以为空,也可存放线性表长度等附加信息,但此结点不能计入链表长度值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值