编程实现线性表顺序存储下的基本操作,初始化,插入元素,删除元素,获取第I元素,判断元素是否存在
时间: 2023-05-26 13:02:42 浏览: 116
以下是Python代码实现:
```python
class SeqList:
def __init__(self):
self.data = [] # 用列表存储线性表数据
def initList(self, n):
self.data = [None] * n # 初始化线性表,长度为n
def listLength(self):
return len(self.data) # 获取线性表长度
def getElem(self, i):
if i < 1 or i > len(self.data):
return None # i超出范围,返回None
else:
return self.data[i-1] # 返回第i个元素
def locateElem(self, x):
for i in range(len(self.data)):
if self.data[i] == x:
return i+1 # 返回元素x在线性表中的位置
return -1 # 如果x不存在,返回-1
def listInsert(self, i, x):
if i < 1 or i > len(self.data)+1:
return False # i超出范围,插入失败
if len(self.data) >= len(self.data):
return False # 线性表已满,插入失败
for j in range(len(self.data)-1, i-2, -1):
self.data[j+1] = self.data[j] # 将i以后的元素后移
self.data[i-1] = x # 插入元素x
return True
def listDelete(self, i):
if i < 1 or i > len(self.data):
return False # i超出范围,删除失败
for j in range(i, len(self.data)):
self.data[j-1] = self.data[j] # 将i以后的元素前移
self.data.pop() # 删除末尾元素
return True
```
示例使用:
```python
seqList = SeqList() # 新建线性表对象
seqList.initList(5) # 初始化线性表,长度为5
seqList.data = [1, 2, 3, 4, 5] # 设置线性表数据,便于测试
print("线性表长度:", seqList.listLength()) # 输出5
print("第3个元素:", seqList.getElem(3)) # 输出3
print("元素4的位置:", seqList.locateElem(4)) # 输出4
print("元素6的位置:", seqList.locateElem(6)) # 输出-1
seqList.listInsert(3, 9) # 在第3个位置插入元素9
print("插入元素9后的线性表:", seqList.data) # 输出[1, 2, 9, 3, 4, 5]
seqList.listDelete(4) # 删除第4个元素
print("删除第4个元素后的线性表:", seqList.data) # 输出[1, 2, 9, 4, 5]
```
阅读全文