请编程实现一个对顺序表进行基本操作的系统,主要包括表的创建、输入、查询、取值、插入、删除和输出的操作
时间: 2023-12-20 12:05:00 浏览: 79
以下是一个基本的顺序表操作系统的实现:
```python
class SeqList:
def __init__(self, size):
self.data = [None] * size # 初始化列表
self.length = 0 # 列表长度
self.max_size = size # 列表最大长度
def create(self):
# 创建列表
self.length = int(input("请输入列表长度:"))
for i in range(self.length):
self.data[i] = int(input("请输入第{}个元素:".format(i+1)))
def print_list(self):
# 输出列表
for i in range(self.length):
print(self.data[i], end=" ")
print()
def find(self, value):
# 查找元素
for i in range(self.length):
if self.data[i] == value:
return i
return -1
def get_elem(self, index):
# 获取指定位置的元素
if index < 0 or index >= self.length:
print("索引越界")
return None
return self.data[index]
def insert(self, index, value):
# 插入元素
if index < 0 or index > self.length:
print("插入位置不合法")
return None
if self.length == self.max_size:
print("列表已满,无法插入")
return None
for i in range(self.length-1, index-1, -1):
self.data[i+1] = self.data[i]
self.data[index] = value
self.length += 1
def delete(self, index):
# 删除元素
if index < 0 or index >= self.length:
print("删除位置不合法")
return None
for i in range(index, self.length-1):
self.data[i] = self.data[i+1]
self.length -= 1
self.data[self.length] = None
if __name__ == "__main__":
lst = SeqList(10) # 创建一个最大长度为10的顺序表
lst.create() # 创建列表
lst.print_list() # 输出列表
value = int(input("请输入要查找的元素:"))
index = lst.find(value) # 查找元素
if index == -1:
print("未找到该元素")
else:
print("元素{}在列表中的位置为{}".format(value, index+1))
index = int(input("请输入要获取的元素的位置:"))
value = lst.get_elem(index-1) # 获取指定位置的元素
if value is not None:
print("列表中第{}个元素的值为{}".format(index, value))
index = int(input("请输入要插入元素的位置:"))
value = int(input("请输入要插入的元素值:"))
lst.insert(index, value) # 插入元素
lst.print_list() # 输出列表
index = int(input("请输入要删除元素的位置:"))
lst.delete(index-1) # 删除元素
lst.print_list() # 输出列表
```
在这个程序中,我们先定义了一个SeqList类,它有以下属性:
- data:一个列表,存储顺序表的元素
- length:顺序表的长度
- max_size:顺序表的最大长度
SeqList类有以下方法:
- \_\_init\_\_(self, size):初始化顺序表,创建一个长度为size的空列表
- create(self):从用户输入中创建一个顺序表
- print_list(self):输出顺序表
- find(self, value):查找元素value在顺序表中的位置,如果找不到则返回-1
- get_elem(self, index):获取顺序表中第index个元素的值
- insert(self, index, value):在顺序表的第index个位置插入一个值为value的元素
- delete(self, index):删除顺序表中第index个元素
在程序的主函数中,我们首先创建了一个长度为10的SeqList对象lst,并调用create方法创建一个顺序表。然后,我们依次进行了查找、获取、插入、删除等操作,并输出了每一步操作后的顺序表。
阅读全文