构建顺序表,输出顺序表的长度,对顺序表中某元素进行查找。
时间: 2024-05-14 09:14:56 浏览: 60
以下是Python代码实现:
```python
class SqList:
def __init__(self, maxsize=10):
self.maxsize = maxsize
self.length = 0
self.data = [None] * maxsize
def __len__(self):
return self.length
def __getitem__(self, index):
if 0 <= index < self.length:
return self.data[index]
else:
raise IndexError('Index out of range')
def __setitem__(self, index, value):
if 0 <= index < self.length:
self.data[index] = value
else:
raise IndexError('Index out of range')
def __repr__(self):
return '[' + ', '.join(str(self.data[i]) for i in range(self.length)) + ']'
def find(self, value):
for i in range(self.length):
if self.data[i] == value:
return i
return -1
# 测试
sq = SqList(5)
sq[0] = 1
sq[1] = 2
sq[2] = 3
sq.length = 3
print(len(sq)) # 输出3
print(sq.find(2)) # 输出1
```
说明:
1. `SqList` 类是一个顺序表,`maxsize` 参数指定顺序表的最大长度,初始化时创建一个长度为 `maxsize` 的数组 `data` 用于存储数据,`length` 属性表示当前顺序表的长度。
2. `__len__` 方法用于返回顺序表的长度。
3. `__getitem__` 方法用于获取指定位置的元素,如果索引不在有效范围内则抛出 `IndexError` 异常。
4. `__setitem__` 方法用于设置指定位置的元素,如果索引不在有效范围内则抛出 `IndexError` 异常。
5. `__repr__` 方法用于返回顺序表的字符串表示,方便打印输出。
6. `find` 方法用于查找指定元素在顺序表中的位置,如果不存在则返回 `-1`。
阅读全文