请编程实现一个对顺序表进行基本操作的系统,主要包括表的创建,输入,查询,取值,插入,删除和输出等操作
时间: 2024-05-05 19:15:50 浏览: 117
顺序表基本操作的实现
以下是一个基本的顺序表操作系统的实现代码:
```python
class SeqList:
def __init__(self, max_size=100):
self.max_size = max_size
self.length = 0
self.data = [None] * self.max_size
def is_empty(self):
return self.length == 0
def is_full(self):
return self.length == self.max_size
def clear(self):
self.length = 0
def get_length(self):
return self.length
def get_elem(self, index):
if index < 0 or index >= self.length:
return None
return self.data[index]
def locate_elem(self, elem):
for i in range(self.length):
if self.data[i] == elem:
return i
return -1
def insert(self, index, elem):
if index < 0 or index > self.length or self.is_full():
return False
for i in range(self.length-1, index-1, -1):
self.data[i+1] = self.data[i]
self.data[index] = elem
self.length += 1
return True
def delete(self, index):
if index < 0 or index >= self.length:
return False
for i in range(index, self.length-1):
self.data[i] = self.data[i+1]
self.data[self.length-1] = None
self.length -= 1
return True
def input(self):
n = int(input("请输入元素个数:"))
for i in range(n):
elem = input("请输入第{}个元素:".format(i+1))
self.insert(i, elem)
def output(self):
for i in range(self.length):
print(self.data[i], end=' ')
print()
def menu(self):
print("1. 创建顺序表")
print("2. 输入元素")
print("3. 查询元素")
print("4. 取值")
print("5. 插入元素")
print("6. 删除元素")
print("7. 输出元素")
print("8. 退出程序")
def run(self):
while True:
self.menu()
choice = int(input("请输入您的选择:"))
if choice == 1:
size = int(input("请输入最大元素个数:"))
self.__init__(size)
elif choice == 2:
self.input()
elif choice == 3:
elem = input("请输入要查询的元素:")
index = self.locate_elem(elem)
if index != -1:
print("元素{}的位置是{}".format(elem, index))
else:
print("元素不存在")
elif choice == 4:
index = int(input("请输入要取值的下标:"))
elem = self.get_elem(index)
if elem is not None:
print("下标{}对应的元素是{}".format(index, elem))
else:
print("下标不存在")
elif choice == 5:
index = int(input("请输入要插入的位置:"))
elem = input("请输入要插入的元素:")
if self.insert(index, elem):
print("插入成功")
else:
print("插入失败")
elif choice == 6:
index = int(input("请输入要删除的位置:"))
if self.delete(index):
print("删除成功")
else:
print("删除失败")
elif choice == 7:
self.output()
elif choice == 8:
break
else:
print("输入有误,请重新输入")
```
使用示例:
```python
lst = SeqList()
lst.run()
```
输出:
```
1. 创建顺序表
2. 输入元素
3. 查询元素
4. 取值
5. 插入元素
6. 删除元素
7. 输出元素
8. 退出程序
请输入您的选择:1
请输入最大元素个数:5
1. 创建顺序表
2. 输入元素
3. 查询元素
4. 取值
5. 插入元素
6. 删除元素
7. 输出元素
8. 退出程序
请输入您的选择:2
请输入元素个数:3
请输入第1个元素:A
请输入第2个元素:B
请输入第3个元素:C
1. 创建顺序表
2. 输入元素
3. 查询元素
4. 取值
5. 插入元素
6. 删除元素
7. 输出元素
8. 退出程序
请输入您的选择:3
请输入要查询的元素:B
元素B的位置是1
1. 创建顺序表
2. 输入元素
3. 查询元素
4. 取值
5. 插入元素
6. 删除元素
7. 输出元素
8. 退出程序
请输入您的选择:4
请输入要取值的下标:2
下标2对应的元素是C
1. 创建顺序表
2. 输入元素
3. 查询元素
4. 取值
5. 插入元素
6. 删除元素
7. 输出元素
8. 退出程序
请输入您的选择:5
请输入要插入的位置:1
请输入要插入的元素:D
插入成功
1. 创建顺序表
2. 输入元素
3. 查询元素
4. 取值
5. 插入元素
6. 删除元素
7. 输出元素
8. 退出程序
请输入您的选择:6
请输入要删除的位置:0
删除成功
1. 创建顺序表
2. 输入元素
3. 查询元素
4. 取值
5. 插入元素
6. 删除元素
7. 输出元素
8. 退出程序
请输入您的选择:7
D B C
1. 创建顺序表
2. 输入元素
3. 查询元素
4. 取值
5. 插入元素
6. 删除元素
7. 输出元素
8. 退出程序
请输入您的选择:8
```
阅读全文