python数据结构:列表

本文探讨了Python中的列表数据结构,特别是无序表List的抽象数据类型及其操作,包括创建、添加、移除和搜索。通过链表实现无序表,详细解析了链表节点、添加数据项到链表头部的高效方法以及链表的size、search和remove方法。
摘要由CSDN通过智能技术生成

1.什么是列表

❖在前面基本数据结构中,采用PythonList来实现了多种线性数据结构
❖列表List是一种简单强大的数据集结构,提供了丰富的操作接口
但并不是所有的编程语言都提供了List数据类型,有时候需要程序员自己实现。
❖列表是一种数据项按照相对位置存放的数据集
特别的,被称为“无序表unordered list”
其中数据项只按照存放位置来索引,如第1个、第2个……、最后一个等。(为了简单起见,假设表中不存在重复数据项)
❖如一个考试分数的集合“54,26,93,17,77和31”
❖如果用无序表来表示,就是[54,26,93,17,77,31]

2.抽象数据类型:无序表List

2.1无序表List的操作如下:

List():创建一个空列表
add(item):添加一个数据项到列表中,假设item原先不存在于列表中
remove(item):从列表中移除item,列表被修改,item原先应存在于表中
search(item):在列表中查找item,返回布尔类型值
isEmpty():返回列表是否为空
size():返回列表包含了多少数据项
append(item):添加一个数据项到表末尾,假设item原先不存在于列表中
index(item):返回数据项在表中的位置
insert(pos, item):将数据项插入到位置pos,假设item原先不存在与列表中,同时原列表具有足够多个数据项,能让item占据位置pos
pop():从列表末尾移除数据项,假设原列表至少有1个数据项
pop(pos):移除位置为pos的数据项,假设原列表存在位置pos

3.采用链表实现无序表

为了实现无序表数据结构,可以采用链接表的方案。
❖虽然列表数据结构要求保持数据项的前后相对位置,
但这种前后位置的保持,
并不要求数据项依次存放在连续的存储空间

❖如下图,数据项存放位置并没有规则,
但如果在数据项之间建立链接指向,就可以保持其前后相对位置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0w3SLlur-1584152535777)(attachment:image.png)]

3.1 链表实现:节点Node

❖链表实现的最基本元素是节点Node
每个节点至少要包含2个信息:数据项本身,以及指向下一个节点的引用信息
注意next为None的意义是没有下一个节点了,这个很重要
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9SDOyuDJ-1584152535779)(attachment:image.png)]

class Node:
    def _init_(self,initdata):
        self.data=initdata
        self.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值