基于Python的顺序表的运算及应用

该博客介绍了基于Python的顺序表实现,包括创建、插入、删除、修改、输出、长度计算、逆置等操作。文章详细阐述了各项操作的算法描述及实现代码,并提供了主函数示例和运行结果分析,探讨了不同操作的时间复杂度。
摘要由CSDN通过智能技术生成

一、实验内容

  1. 顺序表创建(注意:顺序表中数据元素的输入形式)。★
  2. 顺序表的基本操作(插入、删除、修改等基本操作及算法实现)。★★
  3. 在顺序表基本运算的基础上实现相关应用算法。★★★

二、实验步骤

1.顺序表的定义

  1. data数组存放线性表元素
  2. data数组的容量(存放最多的元素个数)为capacity。
  3. 线性表中实际数据元素个数size
class SqList:
    def __init__(self):						    #构造函数
        self.initcapacity=5           		    #初始容量设置为10
        self.capacity=self.initcapacity			#容量设置为初始容量
        self.data=[None]*self.capacity			#设置顺序表的空间
        self.size=0

2. 顺序表的扩容

算法描述:

  1. 令olddata指向原data列表;
  2. 为data重新分配新的空间newcapacity;
  3. 将olddata中的所有元素复制到data中。

参考代码:

    def resize(self, newcapacity):			    #改变顺序表的容量为newcapacity
        assert newcapacity>=0					#检测参数正确性的断言
        olddata=self.data
        self.data=[None]*newcapacity
        self.capacity=newcapacity
        for i in range(self.size):
            self.data[i]=olddata[i]

3. 整体创建顺序表(或:表尾添加单个元素创建顺序表)

算法描述:

  1. 依次将a中的元素添加到data数组的末尾
  2. 出现上溢出时按实际元素个数size的两倍扩大容量

参考代码:

    def CreateList(self, a):                    # 由数组a中元素整体建立顺序表
        for i in range(0, len(a)):
            if self.size == self.capacity:      # 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

即将拥有人鱼线的Pony

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值