Python順序鍊錶

2021-07-26 03:05:32 字數 2602 閱讀 2885

順序鍊錶

#encoding=utf-8

class

sxlist

():def

__init__

(self,max):

self.maxlenth=max

self.data=

self.lenth=len(self.data)

defadd(self,key):

self.lent=len(self.data)

if self.lent<=(self.maxlenth-1):

self.data=self.data+[key]

self.lenth=self.lenth+1

else :

print("陣列已滿")

defisempty

(self):

if self.lenth==0:

print("列表為空")

return

true

else :

print("列表不為空")

return

false

defisfull

(self):

if self.lenth==max:

print("列表滿了")

return

true

else :

print("列表不滿")

return

false

defgetbyelem

(self,elem):

res=

for i in range(self.lenth):

if self.data[i]==elem:

res=res+[i]

if len(res)==0:

print("未找到")

return

false

else:

print("找到了,下標如下")

print(res)

return res

defdeleteindex

(self,num):

if self.isempty():

print("空表")

else:

if num>self.lenth-1:

print("刪除的索引項超過範圍")

return

false

else:

for i in range(self.lenth):

if i>num:

p=self.data[i]

self.data[i-1]=p

self.data=self.data[:-1]

self.lenth=self.lenth-1

print("刪除ok")

return

true

definsert

(self,key,num):

if num<0

and num>self.lenth+1:

print("過界")

elif num==self.lenth:

self.add(key)

else:

p=self.data[self.lenth-1]

for i in range(self.lenth):

if i>num and i1]

self.data[num]=key

self.add(p)

print(self.data)

print(self.lenth)

defgetbyindex

(self,num):

if num<0

and num>self.lenth:

print("過界")

else:

res=self.data[num]

print(res)

defcount

(self):

print(self.lenth)

return self.lenth

sx=sxlist(10)

print(sx.maxlenth)

print(sx.data)

print(sx.lenth)

sx.isempty()

sx.isfull()

sx.add(3)

print(sx.maxlenth)

print(sx.data)

print(sx.lenth)

sx.isempty()

sx.isfull()

sx.add(4)

sx.add(5)

sx.add(6)

sx.add(7)

sx.add(8)

print(sx.data)

sx.deleteindex(3)

sx.insert(9, 0)

sx.getbyindex(3)

sx.insert(33, 6)

sx.getbyelem(33)

sx.count()

python列表和鍊錶的區別 順序表和煉表的區別

一 從操作上角度 順序表和煉表都具有增 刪 查 改的相同功能,但演算法複雜度卻不相同。1 增 順序表往指定位置,不覆蓋的新增乙個值,後面的值日要往後移動,演算法複雜度為o n 鍊錶往指定位置新增乙個節點,需要從表頭遍歷到指定位置,演算法複雜度為o n 如果帶有索引的節點,演算法複雜度為o 1 2 刪...

鍊錶學習筆記 順序鍊錶

順序鍊錶的主要思想就是使用乙個整型陣列來儲存資料的指標。在建立記憶體的時候如圖,用後面的陣列來儲存指標。大量使用 給void重新起個名字 封裝使用的資料j 讓其對使用者是透明的 typedef void seqlist typedef void seqlistnode seqlist seqlist...

順序表及鍊錶

順序表 將表中元素乙個接乙個的存入一組連續的儲存單元中,這種儲存結構是順序結構。利用陣列單元的物理位置上的 優點 儲存空間連續,允許元素隨機訪問 缺點 長度固定,在分配記憶體之前要先確定好陣列長度,致使可能造成空間浪費 單鏈表 用一組任意的儲存單元存放線性表的元素,只包含指向下乙個節點的指標,只能單...