:1、非空顺序表的创建以及顺序表的插入和删除操作算法实现。
时间: 2023-09-21 22:06:54 浏览: 43
非空顺序表的创建:
1. 定义一个数组来存储顺序表的数据元素;
2. 定义一个变量来记录顺序表的长度;
3. 初始化顺序表的长度为0。
顺序表的插入操作:
1. 判断插入位置是否合法,即插入位置必须在表的范围内;
2. 判断顺序表是否已满,如果已满则需要进行扩容操作;
3. 将插入位置及其后面的元素依次向后移动一个位置;
4. 将待插入元素放入插入位置处;
5. 长度加1。
顺序表的删除操作:
1. 判断删除位置是否合法,即删除位置必须在表的范围内;
2. 将删除位置及其后面的元素依次向前移动一个位置;
3. 长度减1。
代码实现:
```python
# 创建非空顺序表
def create_seq_list(data):
seq_list = [None] * len(data)
for i in range(len(data)):
seq_list[i] = data[i]
return seq_list, len(data)
# 插入元素
def insert(seq_list, index, value):
if index < 0 or index > len(seq_list):
print("插入位置不合法!")
return seq_list
if len(seq_list) == len(seq_list):
seq_list = seq_list + [None] * (len(seq_list) // 2)
for i in range(len(seq_list)-1, index-1, -1):
seq_list[i+1] = seq_list[i]
seq_list[index] = value
return seq_list, len(seq_list)
# 删除元素
def delete(seq_list, index):
if index < 0 or index >= len(seq_list):
print("删除位置不合法!")
return seq_list
for i in range(index, len(seq_list)-1):
seq_list[i] = seq_list[i+1]
seq_list.pop()
return seq_list, len(seq_list)
```