class SequenceList(object):
'''順序表(數組)'''
def __init__(self,size=6):
# 初始化順序表
self.max=size#最大容量,默認爲6
self.num=0#當前儲存個數
# 提前構建一個固定大小的列表,初始化全爲None
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 inset(self,index,value):
if not isinstance(index,int):
raise TypeError
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+1]=self.data[i]
self.data[index]=value
self.num+=1
else:
raise IndexError
# 刪除表中某一位置的值,需要移動其他數據元素
def remove(self,index):
if not isinstance(index,int):
raise TypeError
if self.num==0:
print('list is empty')
if 0<=index<self.max:
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 printlist(self):
for i in range(self.num):
print(self.data[i])
if __name__=="__main__":
a=SequenceList(10)
a.inset(0,1)
print(a.printlist())