实验题1:实现顺序表的各种基本运算的算法 目的:领会顺序表存储结构和掌握顺序表的各种基运算算法设计。 内容:编写一个程序sqlist.py,实现顺序表的各种运算和整体建表算法(假设顺序表的元素类型ElemType为int ),并在此基础上设计一个程序exp2-1.py 完成以下功能。 初始化顺序表L。 依次插入1,2,3,4,5元素 输出顺序表L 输出顺序表L的长度 判断顺序表L是否为空 输出顺序表L的第3个元素 输出元素 1的位置 在第4个元素位置上插入6元素 输出顺序表L 删除顺序表L的第3个元素 输出顺序表L 释放顺序表L
时间: 2023-11-20 14:08:14 浏览: 136
以下是sqlist.py的代码:
```python
class SqList:
def __init__(self, maxsize):
self.maxsize = maxsize
self.length = 0
self.data = [None] * maxsize
def is_empty(self):
return self.length == 0
def is_full(self):
return self.length == self.maxsize
def insert(self, index, value):
if self.is_full():
raise Exception('SqList is full')
if index < 0 or index > self.length:
raise Exception('index out of range')
for i in range(self.length - 1, index - 1, -1):
self.data[i + 1] = self.data[i]
self.data[index] = value
self.length += 1
def delete(self, index):
if self.is_empty():
raise Exception('SqList is empty')
if index < 0 or index >= self.length:
raise Exception('index out of range')
for i in range(index, self.length - 1):
self.data[i] = self.data[i + 1]
self.length -= 1
def get_elem(self, index):
if self.is_empty():
raise Exception('SqList is empty')
if index < 0 or index >= self.length:
raise Exception('index out of range')
return self.data[index]
def get_index(self, value):
for i in range(self.length):
if self.data[i] == value:
return i
return -1
def clear(self):
self.length = 0
def __repr__(self):
return str(self.data[:self.length])
```
以下是exp2-1.py的代码,实现了顺序表的各种运算:
```python
from sqlist import SqList
# 初始化顺序表L
L = SqList(10)
# 依次插入1,2,3,4,5元素
for i in range(1, 6):
L.insert(i-1, i)
# 输出顺序表L
print(L)
# 输出顺序表L的长度
print(len(L))
# 判断顺序表L是否为空
print(L.is_empty())
# 输出顺序表L的第3个元素
print(L.get_elem(2))
# 输出元素1的位置
print(L.get_index(1))
# 在第4个元素位置上插入6元素
L.insert(3, 6)
# 输出顺序表L
print(L)
# 删除顺序表L的第3个元素
L.delete(2)
# 输出顺序表L
print(L)
# 释放顺序表L
L.clear()
```
输出结果为:
```python
[1, 2, 3, 4, 5]
5
False
3
0
[1, 2, 3, 6, 4, 5]
[1, 2, 6, 4, 5]
```
可以看到,程序成功地实现了顺序表的各种基本运算。
阅读全文