class seqlist(object):
def __init__(self,size=50): # 初始化線性表
# 定義線性表的最大長度為50
self.max=size
self.num=0
self.data=[none]*self.max
def is_empty(self): # 判斷線性表是否為空
return self.num is 0
def if_full(self): # 判斷線性表是否為滿
return self.num is self.max
def __getitem__(self, index): # 獲取線性表中某一位置的值
if not isinstance(index,int):
raise typeerror
if 0 <= index < self.max:
return self.data[index]
else:
raise indexerror
def __setitem__(self, index, value): # 修改線性表中某一位置的值
if not isinstance(index,int):
raise typeerror
if 0<=indexself.max:
print("list is full")
else:
self.data[self.num]=value
self.num+=1
def insert(self,index,value): # 在表中任意位置插入乙個元素
if self.num>=self.max:
print("list is full")
if not isinstance(index,int):
raise typeerror
if index<0 or index>self.num:
raise indexerror
for i in range(self.num,index,-1):
self.data[i]=self.data[i-1]
self.data[index]=value
self.num += 1
# if i < 1 or i > self.num+1:
# print("i is not right")
# if self.num >= self.max:
# print("list is full!")
# for j in range(self.num+1,i,-1):
# self.data[j]=self.data[j-1]
# self.data[i-1]=value
# self.num += 1
def remove(self,index): # 刪除表中某一位置的值
if isinstance(index,int):
raise typeerror
if index < 0 or index >= self.num:
raise indexerror
for i in range(index,self.num):
self.data[i]=self.data[i+1]
self.num -= 1
def print_list(self): # 刪除線性表
for i in range(0,self.num):
print(self.data[i])
def destroy(self): # 銷毀線性表
self.__init__()
if __name__ == '__main__':
seqlist=seqlist()
print(seqlist.is_empty())
print(seqlist.__getitem__(0))
買了王道的資料結構與演算法,準備用python進行**實現裡面的例項,準備春招 資料結構及演算法 順序表
順序表是一種簡單的線性結構,邏輯上相鄰的資料在計算機內的儲存位置也是相鄰的,可以快速定位第幾個元素,中間不允許有空值,插入 刪除時需要移動大量元素。順序表的三個要素 結構體定義 define max size 100 struct sqlist define max size 100 typedef...
資料結構順序表定義和實現
首先是順序表的抽象資料型別的定義 file sequence.h define maxsize 100 定義順序表最大的容量為100 typedef int datatype 給int 取了個別名叫datatype typedef struct sequence 接下來是它的大部分演算法實現,當然我...
C語言資料結構 順序表的定義
靜態定義一張順序表的方法跟定義乙個陣列的方法類似 define maxsize 100 elemtype sqlist maxsize int len 動態地定義一張順序表的方法 define maxsize 100 typedef structsqlist void initsqlist sqli...