要求将算法1-6设计为3. 3. 4节定义的顺序表Dy
要求将算法1-6设计为3. 3. 4节定义的顺序表DynamicArrayList类的方法。
6.设计算法,将有序顺序表中position位置的元素值替换为item,要求替换后的表仍保持有序。
答案
class DynamicArrayList: def __init__(self): self.data = [] def replace_ordered(self, position, item): """有序顺序表,替换position位置元素为item,保持有序""" n = len(self.data) # 边界检查 if position<0 or position>=n: return # 1. 删除position处旧元素 for i in range(position, n-1): self.data[i] = self.data[i+1] self.data.pop() # 2. 查找item应该插入的下标 insert_idx = 0 while insert_idx < len(self.data) and self.data[insert_idx] < item: insert_idx += 1 # 3. 后移元素,插入item self.data.append(0) for i in range(len(self.data)-1, insert_idx, -1): self.data[i] = self.data[i-1] self.data[insert_idx] = item