Python实现线性表顺序存储:初始化、查找、插入与删除详解
本文详细解析Python中线性表的顺序存储实现。从抽象数据类型(ADT)定义出发,涵盖空表初始化、按值查找、指定位置插入及元素删除等核心操作的代码实现。通过具体示例演示如何管理数组容量与表长,帮助开发者掌握顺序表的基本逻辑与边界条件处理。
本文分享使用Python实现线性表顺序存储的具体代码示例,供读者参考学习。
线性表
1.抽象数据类型表示(ADT)
类型名称:线性表 数据对象集:线性表由n(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])
测试结果:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









