class RecordNode(object): def __init__(self, key, data): self.key = key self.data = data class SqList(object): def __init__(self, maxSize): self.maxSize = maxSize self.list = [None]*self.maxSize self.len = 0 def insert(self,i,x): if self.len == self.maxSize: raise Exception("顺序表已满") if i < 0 or i > self.len: raise Exception("插入位置不合理") for j in range(self.len-1 , i-1, -1): self.list[j] = self.list[j-1] self.list[i] = x self.len += 1 def insertsort(self): for i in range(1, self.len): p = self.list[i] j = i - 1 while j >= 0: if self.list[i].key > p.key: self.list[j + 1] = self.list[j] j -= 1 else: break self.list[j + 1] = p怎么测试?
时间: 2024-02-14 22:08:14 浏览: 58
解析Python中的__getitem__专有方法
这段代码是Python实现的顺序表数据结构,其中包括了插入和插入排序的方法。要测试这段代码,可以按照以下步骤:
1. 创建一个SqList对象,指定最大容量为n(n为一个正整数),例如:lst = SqList(n)
2. 向列表中插入元素,可以调用insert方法,指定插入位置和元素,例如:lst.insert(0, RecordNode(key1, data1))
3. 插入若干个元素后,可以调用insertsort方法对列表进行插入排序,例如:lst.insertsort()
4. 最后,可以遍历列表中的元素,验证排序效果是否正确,例如:for i in range(lst.len): print(lst.list[i].key, lst.list[i].data)
阅读全文