本文實例為大家分享了python實現線性表順序的具體代碼,供大家參考,具體內容如下
線性表
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]print("建立新的線性表")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: for 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])測試結果:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答