写一个顺序表代码对顺序表进行插入和删除
时间: 2024-02-06 17:10:41 浏览: 27
下面是一个简单的顺序表代码,包含了插入和删除操作。
```python
class SeqList:
def __init__(self, maxsize=None):
self.maxsize = maxsize
self.array = [None] * self.maxsize
self.length = 0
def __len__(self):
return self.length
def __getitem__(self, index):
if isinstance(index, int):
if index < 0 or index >= self.length:
raise IndexError("Index out of range")
else:
return self.array[index]
elif isinstance(index, slice):
start, stop, step = index.start or 0, index.stop or self.length, index.step or 1
start, stop = start % self.length, stop % self.length
if start < stop:
return [self.array[i] for i in range(start, stop, step)]
else:
return [self.array[i] for i in range(start, self.length, step)] + [self.array[i] for i in range(0, stop, step)]
def __setitem__(self, index, value):
if isinstance(index, int):
if index < 0 or index >= self.length:
raise IndexError("Index out of range")
else:
self.array[index] = value
elif isinstance(index, slice):
start, stop, step = index.start or 0, index.stop or self.length, index.step or 1
start, stop = start % self.length, stop % self.length
if start < stop:
for i in range(start, stop, step):
self.array[i] = value[i - start]
else:
for i in range(start, self.length, step):
self.array[i] = value[i - start]
for i in range(0, stop, step):
self.array[i] = value[i + self.length - start]
def __repr__(self):
return repr(self.array[:self.length])
def insert(self, index, value):
if self.length >= self.maxsize:
raise Exception("SeqList is full")
if index < 0 or index > self.length:
raise IndexError("Index out of range")
for i in range(self.length, index, -1):
self.array[i] = self.array[i - 1]
self.array[index] = value
self.length += 1
def delete(self, index):
if self.length <= 0:
raise Exception("SeqList is empty")
if index < 0 or index >= self.length:
raise IndexError("Index out of range")
for i in range(index, self.length - 1):
self.array[i] = self.array[i + 1]
self.array[self.length - 1] = None
self.length -= 1
```
其中,`__init__` 方法用于初始化顺序表,`__len__` 方法用于返回顺序表的长度,`__getitem__` 方法用于获取顺序表的某个元素或某个范围内的元素,`__setitem__` 方法用于设置顺序表的某个元素或某个范围内的元素,`__repr__` 方法用于返回顺序表的字符串表示,`insert` 方法用于在顺序表的指定位置插入元素,`delete` 方法用于删除顺序表的指定位置的元素。