顺序线性表--L已经存在,且1 <= index <= ListLength(L)
一、获得元素操作--GetElem
含义:将线性表L中的第 index 个位置元素值返回
思路:只要 index 的数值在数组下标值范围内,把数组第 index-1下标的值返回即可
二、插入操作--ListInsert
含义:在线性表L中的第 index 个位置插入新元素 e
思路:
三、删除操作--ListDelete
含义:将线性表L中的第 index 个位置的元素 e删除
思路:
四、python代码实现
class SequenceList:def __init__(self, max_size):# 顺序表的最大容量self.max_size = max_size# 初始化一个长度为 max_size 的列表self.data = [None] * max_size# 当前顺序表的长度self.length = 0# 判断线性表是否为空def is_empty(self):return self.length == 0# 判断线性表是否已满def is_full(self):return self.length == self.max_size# 取出线性表中 第 index 个位置的元素def GetElem(self,index):if index<0 | index>=self.length:return "Index out of range!"else:return self.data[index-1]# 将元素 x 插入到线性表中的第 index 个位置def ListInsert(self,index,x):if self.is_full():return "Sequence list is full"if index < 0 or index > self.length:return "Invalid index"# 将 index 之后的元素后移一位# 每次循环减少 1,即从后往前逐步遍历for i in range(self.length,index,-1):self.data[i]=self.data[i-1]#利用切片亦可将 index 之后的元素后移一位#self.data[index + 1:self.length + 1] = self.data[index:self.length]# 将新元素插入到指定位置self.data[index]=x# 线性表长度+1self.length +=1return "Insert Successfully!"# 将线性表中第 index 个位置的元素删除def ListDelete(self, index):if index < 0 or index > self.length:return "Invalid index"# 将 index 之后的元素向前移一位for i in range(index,self.length-1):self.data[i] = self.data[i+1]# 将最后一个元素置为Noneself.data[self.length-1]=None# 线性表长度-1self.length -=1return "Delete Successfully!"# 在已有线性表上进行操作
seq_list_1 = [1,3,5,7,2,8,9,10]
seq_list = SequenceList(len(seq_list_1))for elem in seq_list_1:seq_list.ListInsert(seq_list.length, elem)
print("顺序表的元素:", seq_list.data)print("获取索引为 1 的元素:", seq_list.GetElem(1))seq_list.ListDelete(1) # 删除索引为 1 的元素
print("删除后的顺序表:", seq_list.data)seq_list.ListInsert(0, 15)
print("插入元素后的顺序表:", seq_list.data)