一、实验内容
- 顺序表创建(注意:顺序表中数据元素的输入形式)。★
- 顺序表的基本操作(插入、删除、修改等基本操作及算法实现)。★★
- 在顺序表基本运算的基础上实现相关应用算法。★★★
二、实验步骤
1.顺序表的定义
- data数组存放线性表元素
- data数组的容量(存放最多的元素个数)为capacity。
- 线性表中实际数据元素个数size
class SqList:
def __init__(self): #构造函数
self.initcapacity=5 #初始容量设置为10
self.capacity=self.initcapacity #容量设置为初始容量
self.data=[None]*self.capacity #设置顺序表的空间
self.size=0
2. 顺序表的扩容
算法描述:
- 令olddata指向原data列表;
- 为data重新分配新的空间newcapacity;
- 将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. 整体创建顺序表(或:表尾添加单个元素创建顺序表)
算法描述:
- 依次将a中的元素添加到data数组的末尾
- 出现上溢出时按实际元素个数size的两倍扩大容量
参考代码:
def CreateList(self, a): # 由数组a中元素整体建立顺序表
for i in range(0, len(a)):
if self.size == self.capacity: #