顺序表ADT模板简单应用算法设计:在给定的顺序表中找出最大和最小的元素
时间: 2024-04-29 13:21:15 浏览: 13
1. 首先定义一个顺序表ADT,包括以下操作:
- 创建顺序表
- 判断顺序表是否为空
- 获取顺序表的长度
- 获取指定位置的元素值
- 设置指定位置的元素值
- 查找最大元素值
- 查找最小元素值
2. 设计算法:
- 遍历整个顺序表,分别记录最大值和最小值
- 每次遍历到一个元素,就与当前记录的最大值和最小值进行比较
- 如果大于最大值,就将最大值更新为当前元素值
- 如果小于最小值,就将最小值更新为当前元素值
- 遍历完成后,返回最大值和最小值
3. 实现代码如下:
```python
class SeqList:
def __init__(self, maxsize=1000):
self.maxsize = maxsize
self.array = [None] * self.maxsize
self.length = 0
def __len__(self):
return self.length
def is_empty(self):
return self.length == 0
def __getitem__(self, index):
if index < 0 or index >= self.length:
raise IndexError("Index out of range")
return self.array[index]
def __setitem__(self, index, value):
if index < 0 or index >= self.length:
raise IndexError("Index out of range")
self.array[index] = value
def find_min(self):
if self.is_empty():
raise ValueError("SeqList is empty")
min_value = self.array[0]
for i in range(1, self.length):
if self.array[i] < min_value:
min_value = self.array[i]
return min_value
def find_max(self):
if self.is_empty():
raise ValueError("SeqList is empty")
max_value = self.array[0]
for i in range(1, self.length):
if self.array[i] > max_value:
max_value = self.array[i]
return max_value
```
4. 测试代码:
```python
lst = SeqList()
lst.length = 5
lst[0] = 1
lst[1] = 5
lst[2] = 3
lst[3] = 9
lst[4] = 7
print("min_value:", lst.find_min()) # min_value: 1
print("max_value:", lst.find_max()) # max_value: 9
```
运行结果:
```
min_value: 1
max_value: 9
```