本文共 1670 字,大约阅读时间需要 5 分钟。
顺序表的实现和无序表相似,只是add方法中,需要添加条件判断的语句
# 链表的python实现# 定义一个结点class Node: def __init__(self, initdata): self.data = initdata self.next = None def getData(self): return self.data def getNext(self): return self.next def setData(self, newdata): self.data = newdata def setNext(self, newnext): self.next = newnext# 定义一个无序链表class OrderedList: def __init__(self): self.head = None def add(self, item): current = self.head previons = None stop = False # 发现插入位置 while current != None and not stop: if current.getData() > item: stop = True else: previons = current current = current.getNext() temp = Node(item) if previons == None: # 插入在表头 temp.setNext(self.head) self.head = temp else: # 插入在表中 temp.setNext(current) previons.setNext(temp) # 搜索链表,查找元素item,找到返回True,失败返回False def search(self, item): current = self.head found = False stop = False while current != None and not found and not stop: if current.getData() == item: found = True else: if current.getData() > item: stop = True else: current = current.getNext() return found # 判断链表元素个数 def size(self): current = self.head count = 0 while current != None: count += 1 current = current.getNext() return count # 判空 def isEmpty(self): return self.head == None
转载地址:http://fgren.baihongyu.com/