写一个程序,在顺序表中存入若干个元素,并分别编写三个函数,实现如下功能: 在顺序表a的第i个位置插入元素x; 删除第i个位置的元素; 查找指定位置的元素值。
时间: 2023-05-29 14:08:00 浏览: 80
以下是Python代码实现:
```python
MAXSIZE = 100 # 定义顺序表最大长度
class SeqList:
def __init__(self):
self.data = [None] * MAXSIZE # 初始化顺序表,全部赋值为None
self.length = 0 # 当前顺序表长度
def insert(self, i, x):
"""
在顺序表a的第i个位置插入元素x
"""
if i < 1 or i > self.length + 1: # 判断插入位置是否合法
print("插入位置不合法")
return False
if self.length == MAXSIZE: # 判断顺序表是否已满
print("顺序表已满")
return False
for j in range(self.length, i-1, -1): # 从后往前遍历,将位置i及其后面的元素依次向后移动一位
self.data[j+1] = self.data[j]
self.data[i-1] = x # 在位置i处插入元素x
self.length += 1 # 顺序表长度加1
return True
def delete(self, i):
"""
删除第i个位置的元素
"""
if i < 1 or i > self.length: # 判断删除位置是否合法
print("删除位置不合法")
return False
for j in range(i, self.length): # 从前往后遍历,将位置i后面的元素依次向前移动一位
self.data[j-1] = self.data[j]
self.data[self.length-1] = None # 将最后一个元素置为None
self.length -= 1 # 顺序表长度减1
return True
def search(self, i):
"""
查找指定位置的元素值
"""
if i < 1 or i > self.length: # 判断查找位置是否合法
print("查找位置不合法")
return None
return self.data[i-1] # 返回位置i处的元素值
if __name__ == '__main__':
a = SeqList() # 创建一个空的顺序表
a.insert(1, 10) # 在位置1处插入元素10
a.insert(2, 20) # 在位置2处插入元素20
a.insert(3, 30) # 在位置3处插入元素30
print(a.data) # 打印当前顺序表的元素列表,输出结果为:[10, 20, 30, None, None, ..., None]
a.delete(2) # 删除位置2处的元素
print(a.data) # 打印当前顺序表的元素列表,输出结果为:[10, 30, None, None, None, ..., None]
print(a.search(2)) # 查找位置2处的元素值,输出结果为:30
```
注意,在Python中,列表下标从0开始,而顺序表下标从1开始,所以在实现插入、删除和查找函数时需要注意下标的转换。
阅读全文