python链表应用源码示例,需要用到python os模块方法、函数和类的应用。
首先,先简单的来了解下什么是链表?链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
#-*-coding:utf8 -*- import os class Head_List: def __init__(self , id): self.id = id self.next = -1 self.length = 0 def setNext(self , value): self.next = value def addLength(self): self.length = self.length + 1 def displayLength(self): print self.length def displayAll(self): print 'head , id:' + str(self.id) + ' , next:' + str(self.next) #def getLastNode(self): class Node_List: def __init__(self , id , data): self.next = -1 self.data = data self.id = id def setNext(self , value): self.next = value def displayAll(self): print 'node , id:' + str(self.id) + ' , data:' + str(self.data) + ' , next:' + str(self.next) def addNode(head , node): node.next = head.next head.next = node.id def delNode(node_one , node_two): node_one.next = node_two.next #main funtion sample = [38.6 , 47.6 , 53.7 , 54.9 , 55 , 80] hl = range(6) nl = range(6) for i in range(0,6,1): hl[i] = Head_List(i) nl[i] = Node_List(i , sample[i]) for i in range(0,6,1): if i == 0: hl[0].setNext(nl[i].id) hl[0].addLength() continue else: for j in range(0,6,1): if (int(nl[i].data - 35) / 5 ) == int((nl[hl[j].next].data - 35) / 5 ): addNode(hl[j] , nl[i]) hl[j].addLength() break else: if hl[j].next == -1: addNode(hl[j] , nl[i]) hl[j].addLength() break for i in range(0,6,1): hl[i].displayAll() for i in range(0,6,1): nl[i].displayAll()