線性表
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 的中間位置插入或者刪...