基于Python实现顺序表基本操作
1. 项目背景
基于严蔚敏数据结构中顺序表思想,本人编写了Python语言的顺序表。感谢一些博主的文章,帮助我完成本项目。严蔚敏书中顺序表操作方法,已在本项目实现。
2. 项目结构
基于严蔚敏数据结构中顺序表思想,本人编写了Python语言的顺序表。感谢一些博主的文章,帮助我完成本项目。严蔚敏书中顺序表操作方法,已在本项目实现。
3. 项目函数
3.1 初始化
在__init__(self, Listsize)方法里,我将顺序表最大值让用户自己传入,以便自己修改。self.elem是顺序表中的存储区域,self.elem中下标为0的元素设为’Linear_logo’并作为顺序表创建的标志。为什么将self.elem中下标为0的元素设为’Linear_logo’?因为在严蔚敏版本的顺序表中,self.elem中下标0内存区域不存储数据,只有下标1的存储区域存数据。self.elem中下标为0是可以存储数据,只不过本项目为贴近严蔚敏的思想才编写。
self.length是顺序表的长度,这个长度是根据实际情况变化。
self.Listsize是顺序表的最大存储空间,如果顺序表长度大于最大存储空间,会自动扩空间,或者就是报错。
self.increment是顺序表的增量,如果要增加一个空间则可使用这个变量。但是,在本项目实现时,self.increment这个变量可以不设。
def __init__(self, Listsize):
self.elem = ['Linear_logo']
self.length = len(self.elem)
self.Listsize = Listsize
self.increment = 1
3.2 插入函数
插入操作函数是根据严蔚敏书中所写思想编写的,但是就是一些判断条件和书中写的位置不一致。
def ListInsert(self, pos, item):
if pos < 1 | pos > self.length + 1:
return IndexError
if pos == self.length:
self.elem += [item]
self.length += self.increment
else:
for i in range(self.length - 1, pos + 1, -1):
self.elem[i] = self.elem[i - 1]
self.elem[pos] = item
if len(self.elem) <= (self.Listsize -