利用python内置的list来实现顺序表
class SequenceList(object):
"""顺序表"""
def __init__(self, size=6):
# 初始化顺序表
self.max = size
self.num = 0
# 提前构建一个固定大小的列表
self.data = [None]*self.max
# 判断线性表是否为空
def is_empty(self):
return self.num is 0
# 判断线性表是否为满
def is_full(self):
return self.num is self.max
# 获取线性表中某一位置的值
def get(self, index):
if not isinstance(index, int):
raise TypeError
if 0 <= index < self.max:
return self.data[index]
else:
raise IndexError
# 修改线性表中某一位置的值
def set(self, index, value):
if not isinstance(index, int):
raise TypeError
if 0 <= index < self.max:
self.data[index] = value
else:
raise IndexError
# 返回线性表中元素的个数
def length(self):
return self.num
# 在表尾插入一个元素
def append(self, value):
if self.num >= self.max:
print("list is full")
else:
self.data[self.num]=value
self.num += 1
# 在表中任意位置插入一个元素
def insert(self, index, value):
if not isinstance(index, int):
raise IndexError
if self.num >= self.max:
print("list is full")
if 0 <= index < self.max:
for i in range(self.num, index, -1):
self.data[i] = self.data[i-1]
self.data[index] = value
self.num += 1
else:
raise IndexError
# 删除表中某一位置的值
def remove(self, index):
if not isinstance(index, int):
raise IndexError
if 0 <= index < self.num:
for i in range(index, self.num):
self.data[i] = self.data[i+1]
self.num -= 1
else:
raise IndexError
# 销毁线性表
def destroy(self):
self.__init__()
# 遍历
def travel(self):
for i in range(self.num):
print(self.data[i])
if __name__ == '__main__':
list = SequenceList()
list.append(1)
list.append(2)
list.append("你好")
list.insert(0, 8)
list.insert(2, 6)
print(list.get(1))
list.set(0, 9)
list.remove(3)
print(list.length())
print(list.is_full())
print(list.is_empty())
list.travel()