实现有序链表时,数据项的相对位置取决去它们之间的“大小”比较,若数据项是非数值类型,则需先定义__gt__或__lt__方法,使任何非数值类型能够进行比较;
class...
def __gt__(self, orther):
return self > orther
有序链表与无序链表相比,改变最大的地方是 add() 和 search() 方法:
- add(item):往有序表中添加新的数据项,并保持整体顺序
- search(item):查找是否存在数据项,返回一个布尔值。可以利用有序排列的特性,为search节省不存在数据项的查找时间,即一旦当前节点的数据项大于所要查找的数据项,则说明链表后面不可能存在要查找的数据项,可以直接返回False
Node 类:
class Node:
def __init__(self,item):
self.item = item
self.next = None
def getdata(self):
return self.item
def getnext(self):
return self.next
def setdata(self,newitem):
self.item = newitem
def setnext(self,newnext):
self.next = newnext
OrderedList 类:
class OrderedList:
def __init__(self):
self.head = None