编写程序实现顺序表的插入、删除、查找、两个顺序表合并。
时间: 2023-09-30 19:09:05 浏览: 61
以下是Python代码实现:
```python
class SeqList:
def __init__(self, size):
self.max_size = size
self.cur_size = 0
self.data = [None] * size
def is_empty(self):
return self.cur_size == 0
def is_full(self):
return self.cur_size == self.max_size
def clear(self):
self.cur_size = 0
def length(self):
return self.cur_size
def get_elem(self, index):
if index < 0 or index >= self.cur_size:
print("Index Error")
return None
return self.data[index]
def locate_elem(self, elem):
for i in range(self.cur_size):
if self.data[i] == elem:
return i
return -1
def insert_elem(self, index, elem):
if self.is_full():
print("List is Full")
return False
if index < 0 or index > self.cur_size:
print("Index Error")
return False
for i in range(self.cur_size, index, -1):
self.data[i] = self.data[i-1]
self.data[index] = elem
self.cur_size += 1
return True
def delete_elem(self, index):
if self.is_empty():
print("List is Empty")
return False
if index < 0 or index >= self.cur_size:
print("Index Error")
return False
for i in range(index, self.cur_size-1):
self.data[i] = self.data[i+1]
self.data[self.cur_size-1] = None
self.cur_size -= 1
return True
def merge(self, other_list):
new_list = SeqList(self.max_size + other_list.max_size)
i = 0
j = 0
while i < self.cur_size and j < other_list.cur_size:
if self.data[i] <= other_list.data[j]:
new_list.insert_elem(new_list.cur_size, self.data[i])
i += 1
else:
new_list.insert_elem(new_list.cur_size, other_list.data[j])
j += 1
while i < self.cur_size:
new_list.insert_elem(new_list.cur_size, self.data[i])
i += 1
while j < other_list.cur_size:
new_list.insert_elem(new_list.cur_size, other_list.data[j])
j += 1
return new_list
```
以下是测试代码:
```python
# 创建顺序表
list1 = SeqList(5)
list2 = SeqList(5)
# 插入元素
list1.insert_elem(0, 1)
list1.insert_elem(1, 3)
list1.insert_elem(2, 5)
list1.insert_elem(3, 7)
list1.insert_elem(4, 9)
list2.insert_elem(0, 2)
list2.insert_elem(1, 4)
list2.insert_elem(2, 6)
list2.insert_elem(3, 8)
list2.insert_elem(4, 10)
# 删除元素
list1.delete_elem(2)
# 查找元素
print(list1.get_elem(1))
print(list2.locate_elem(6))
# 合并两个顺序表
list3 = list1.merge(list2)
# 打印顺序表
for i in range(list3.length()):
print(list3.get_elem(i))
```
运行结果如下:
```
3
2
1
3
4
5
7
8
9
10
```