python資料結構學習之實現線性表的順序

2022-10-03 18:30:13 字數 2269 閱讀 2415

線性表

1.抽象資料型別表示(adt)

型別名稱:線性表

資料物件集:線性表是n(>=0)個元素構成的有序序列(a1,a2,….,an)

操作集:

2.線性表的順序實現

1.表示方法:

其中100可以自己規定,last代表線性表的長度

# 線性表定義

class lnode(object):

def __init__(self,last):

self.data = [none for i in range(100)]

self.last = last # 線性表長度12345

2.建立空的順序表

# 1.初始化建立空的線性表

def makeempty(num):

ptrl = lnode(num)

return ptrl

# 測試建立空的線性表

s = makeempty(10)

print(s.data[0:s.last])

print(s.last)12345678910

測試結果:

3.按值查詢

# 2.查詢給定值的位置

def find(x, l):

i =0

while(i <= l.last and l.data[i] != x):

i+=1

if(i> l.last):

return -1

else:

return i

# 測試查詢函式

num = [0,1,2,3,4,5,6,7,8,9]

l = lnode(10)

for i in range(10):

l.data[i] = num[i]

prwww.cppcns.comint("建立新的線性表")

print(l.data[0:l.last])

print("查詢元素2")

print(程式設計客棧"下標為:")

print(find(2,l))

print("查詢元素12")

print("下標為:")

print(find(12,l)) # 找不到返回-1

測試結果:

4.插入操作

# 3.插入(在第i(0<=i<=n)位置上插入乙個值為x的新元素)

def insert(x,i,l):

if i<0 or i>l.last:

print("位置不合理")

return

else:

fooxutezisdlr j in range(l.last,i-1,-1):

l.data[j+1] = l.data[j]

l.data[i] = x

l.last+=1

return

# 測試插入函式

num = [0,1,2,3,4,5,6,7,8,9]

l = lnode(10)

for i in range(10):

l.data[i] = num[i]

print("建立新的線性表")

print(l.data[0:l.last])

print("在位序3插入元素6")

insert(6,3,l)

print(l.data[0:l.last])

測試結果:

5.刪除操作

# 4.刪除第i(0<=i<=n-1)個位置上的元素

def delete(i,l):

if i<0 or i>=l.last:

print("不存在該元素")

return

else:

for j in range(i,l.last-1):

l.data[j] = l.data[j+1]

l.last -=1

return

# 測試刪除函式

num = [0,1,2,3,4,5,6,7,8,9]

l = lnode(10)

for i in range(10):

l.data[i] = num[i]

print("建立新的線性表")

print(l.data[0:l.last])

print("刪除位序3的元素")

delete(3,l)

print(l.data[0:l.last])

測試結果:

本文標題: python資料結構學習之實現線性表的順序

本文位址: /jiaoben/python/240619.html

資料結構學習

什麼是資料結構 對計算機記憶體中的資料的一種安排。資料結構有那些?優缺點?1.陣列 插入快 知道下標 查詢慢,刪除慢,大小固定 2.有序陣列 比無序的查詢塊,刪除和插入慢,大小固定 3.棧 吃多了吐 個人理解 4.佇列 吃多了拉 個人理解 5.鍊錶 插入快,刪除快,查詢慢 6.二叉樹 查詢 插入 刪...

資料結構學習

鍊錶 class listnode definit self,x self.val x 節點值 self.next none 後繼節點值 例項化節點 n1 listnode 4 節點head n2 listnode 5 n3 listnode 1 構建引用指向 n1.next n2 n2.next ...

資料結構 學習

外部學習資料位址 一 描述 1.arraylist 是最常用的list 實現類,內部是通過陣列實現的,它允許對元素進行快速隨機訪問。2.陣列的缺點是每個元素之間不能有間隔,當陣列大小不滿足時需要增加儲存能力,就要將已經有陣列的資料複製到新的儲存空間中。3.當從arraylist 的中間位置插入或者刪...