设计一个有序顺序表,有序顺序表的操作,包括初始化,求元素个数,插入、删除和取元素,设计一个测试主函数验证所设计有序顺序表的正确性
时间: 2024-05-09 15:18:28 浏览: 42
折半查找算法在顺序表中插入一个元素讲解.pdf
好的,我理解了您的要求。您可以参考下面这个有序顺序表的代码实现:
```python
class OrderedList:
def __init__(self, max_size=100):
self.data = [None] * max_size # 初始化一个空的顺序表
self.max_size = max_size # 最大容量
self.length = 0 # 当前元素个数
def is_empty(self):
return self.length == 0
def is_full(self):
return self.length == self.max_size
def size(self):
return self.length
def search(self, value):
for i in range(self.length):
if self.data[i] == value:
return i
elif self.data[i] > value:
return -1
return -1
def insert(self, value):
if self.is_full():
return False
for i in range(self.length-1, -1, -1):
if self.data[i] > value:
self.data[i+1] = self.data[i]
else:
break
self.data[i+1] = value
self.length += 1
return True
def delete(self, value):
pos = self.search(value)
if pos == -1:
return False
for i in range(pos, self.length-1):
self.data[i] = self.data[i+1]
self.data[self.length-1] = None
self.length -= 1
return True
def get_elem(self, index):
if index < 0 or index > self.length-1:
return None
else:
return self.data[index]
# 下面是测试主函数
if __name__ == '__main__':
print('初始化顺序表...')
list = OrderedList(5)
print('插入元素...')
list.insert(2)
list.insert(4)
list.insert(1)
list.insert(5)
print('元素个数: ', list.size())
print('顺序表是否为空? ', list.is_empty())
print('查找元素...')
index = list.search(4)
if index != -1:
print('元素4的位置是: ', index)
print('删除元素...')
list.delete(2)
print('获取元素...')
elem = list.get_elem(2)
if elem != None:
print('元素2的位置是: ', elem)
```
您可以复制上面的代码到本地环境中进行运行测试,也可以根据需要进行修改。不过需要注意的是,这里只是一个简单的有序顺序表的实现,如果需要应用到实际项目中,还需要根据具体的业务需求进行优化和扩展。
阅读全文