python 链表应用源码示例, 需要用到 python os 模块方法, 函数和类的应用.
首先, 先简单的来了解下什么是链表? 链表是一种物理存储单元上非连续, 非顺序的存储结构, 数据元素的逻辑顺序是通过链表中的指针链接次序实现的.
python 链表应用源码示例如下:
- #-*-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()
python 资源分享扣扣群: 855408893 , 与你分享 Python 企业当下人才需求, 怎么学 Python, 和学习什么内容!
来源: http://www.bubuko.com/infodetail-3113730.html