代码如下:
class StuSeqList(object):
#构造函数
def __init__(self,maxsize=100):
self.maxsize=maxsize
self.len=0
self.data=[None]*maxsize
#判断满
def is_full(self):
if self.len == self.maxsize:
return True
else:
return False
#判空
def is_empty(self):
if self.len == 0:
return True
else:
return False
#尾插法
def insert_tail(self,value):
if self.is_full():
print('表满了,不能操作')
return False
else:
self.data[self.len]=value
self.len+=1
return True
#任意位置插入
def insert_index(self,index,value):
if self.is_full() or index>self.len or index<0:
print('插入失败')
return False
else:
i=self.len
while i>index:
self.data[i]=self.data[i-1]
i-=1
self.data[index]=value
self.len+=1
return True
#删除任意位置
def del_index(self,index):
if self.is_empty() or index>=self.len or index<0:
print('删除位置不合法')
return False
else:
i=index
while i<self.len:
self.data[i]=self.data[i+1]
i+=1
self.len-=1
return True
#按位置修改
def loc_revise(self,index,value):
if self.is_empty() or index>=self.len or index<0:
print('修改失败')
return False
else:
self.data[index]=value
return True
#按值修改
def change_value(self,old_value,new_value):
if old_value == new_value:
print('无需修改')
else:
i=0
while i<self.len:
if self.data[i] == old_value:
self.data[i]=new_value
print('修改成功')
break
i+=1
else:
print('找不到给定值')
return -1
#按值返回位置
def find_index(self,value):
if self.is_empty():
return False
else:
i = 0
while i < self.len:
if self.data[i] == value:
return i
i+=1
print('找不到给定值')
return -1
#去重修改
def remove_repeat(self):
if self.is_empty() or self.len == 1 :
print('该表不用去重')
else:
for i in range(self.len - 1, 0, -1):
for j in range(i):
if self.data[i] == self.data[j]:
self.del_index(i)
#查看
def show_me(self):
if self.is_empty():
print('表空')
return False
else:
for i in range(self.len):
print(self.data[i],end=' ')
print()
return True
测试用例:
if __name__ == '__main__':
student_seq = StuSeqList(1000)
#插入数据
student_seq.insert_tail('张三')
student_seq.insert_tail('李四')
student_seq.insert_tail('王五')
student_seq.show_me()
#位置插入
student_seq.insert_index(1,'小王八')
student_seq.show_me()
#删除
student_seq.del_index(student_seq.find_index('小王八'))
student_seq.show_me()
结果: