python数据结构_线性表_01_顺序表

本文详细介绍了Python中的线性表,特别是顺序表的概念、实现方式和操作。顺序表在Python中表现为list,通过元素在存储区的物理顺序来表示逻辑顺序。文章讨论了顺序表的创建、访问、加入和删除元素的基本操作,以及Python list的实现策略,包括存储区的动态扩展和性能特点。
摘要由CSDN通过智能技术生成

1. 线性表

1.1 线性表概念和抽象数据类型

1、线性表是有穷个元素组成的序列,每个元素在表中有一个确定的位置,即下标。
2、表中含有元素的个数称为表的长度,显然空表长度为0。
3、表中元素之间存在着一个基本关系,即下一个关系,它是一种顺序关系。
4、在一个非空表中,存在着唯一的首元素和尾元素;除了首元素外,每个元素都有且仅有一个前驱元素;除了尾元素外,每个元素都有且仅有一个后继元素

表抽象数据类型

'''
ADT list:                       #一个表抽象数据类型
    List(self)                  #创建一个新表
    is_empty(self)              #判断self是否是一个空表
    len(self)                   #获取表的长度
    prepend(self,elem)          #将元素elem加入表中作为第一个元素
    append(self,elem)           #将元素elem加入表中作为最后一个元素
    insert(self,elem,i)         #将elem元素加入表中作为第i个元素,其他元素顺序不变
    del_first(self)             #删除首元素
    del_last(self)              #删除尾元素
    del(self,i)                 #删除第i个元素
    searh(self,elem)            #查询elem元素在表中出现的位置,不出现时返回-1
    forall(self,op)             #对表中每个元素执行操作op
'''

2 顺序表

2.1 顺序表的实现

顺序表的实现方式:表中元素顺序存放在一个足够大的连续存储区里,首元素存入存储区的开始位置,其余元素依次顺序存放。即元素之间的逻辑顺序关系通过元素在存储区里的物理顺序表示。

基本实现方式

1、存储
情况1:表中保存的元素类型相同,即每个元素的存储长度相同,可以等距存储,直接存储元素。
情况2:表中保存的元素类型不相同,将实际元素另行存储,在顺序表里保存对相应元素的引用信息,即保存的是对实际数据的索引。
2、创建
情况1:按照确定元素的个数,创建不变的顺序表,如tuple。
情况2创建变动的顺序表,必须区分表中元素个数和元素存储区的容量,即创建时分配一个更大的存储块。

顺序表的基本操作

1、创建和访问
创建空表:分配一块存储区,记录表的容量max和元素计数值num,num初始化为0.
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CRPu9N0a-1576584349641)(03_1.png)]
简单判断操作:判断表空和表满,即表空的方法为当且仅当num=0,表满为当且仅当num=max,时间复杂度均为O(1)。
访问给定下标i的元素:需要先检查元素i是否在合法元素范围之内,不依赖于表中元素的个数,时间复杂度为O(1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值