实现一个顺序存储的线性表
时间: 2023-05-27 15:05:42 浏览: 49
以下是Python实现的顺序存储线性表,支持以下基本操作:
- 初始化线性表
- 获取线性表长度
- 判断线性表是否为空
- 获取指定位置的元素
- 查找指定元素在线性表中的位置
- 在指定位置插入元素
- 删除指定位置的元素
```python
class SequenceList:
def __init__(self, max_size):
self.max_size = max_size
self.length = 0
self.data = [None] * max_size
def __len__(self):
return self.length
def is_empty(self):
return self.length == 0
def get_element(self, i):
if i < 1 or i > self.length:
raise IndexError('Index out of range')
return self.data[i - 1]
def index_of(self, elem):
for i in range(self.length):
if self.data[i] == elem:
return i + 1
return -1
def insert(self, i, elem):
if i < 1 or i > self.length + 1:
raise IndexError('Index out of range')
if self.length == self.max_size:
raise Exception('SequenceList is full')
for j in range(self.length - 1, i - 2, -1):
self.data[j + 1] = self.data[j]
self.data[i - 1] = elem
self.length += 1
def delete(self, i):
if i < 1 or i > self.length:
raise IndexError('Index out of range')
for j in range(i, self.length):
self.data[j - 1] = self.data[j]
self.data[self.length - 1] = None
self.length -= 1
```
使用示例:
```python
seq_list = SequenceList(10)
print(len(seq_list)) # 0
print(seq_list.is_empty()) # True
seq_list.insert(1, 'A')
seq_list.insert(2, 'B')
seq_list.insert(3, 'C')
print(len(seq_list)) # 3
print(seq_list.get_element(2)) # 'B'
print(seq_list.index_of('C')) # 3
seq_list.delete(2)
print(len(seq_list)) # 2
print(seq_list.get_element(2)) # 'C'
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)