Python单链表简单实现代码
本文实例讲述了Python单链表简单实现代码。分享给大家供大家参考,具体如下:
用Python模拟一下单链表,比较简单,初学者可以参考参考
#coding:utf-8
classNode(object):
def__init__(self,data):
self.data=data
self.next=None
classNodeList(object):
def__init__(self,node):
self.head=node
self.head.next=None
self.end=self.head
defadd_node(self,node):
self.end.next=node
self.end=self.end.next
deflength(self):
node=self.head
count=1
whilenode.nextisnotNone:
count+=1
node=node.next
returncount
#deletenodeandreturnit'svalue
defdelete_node(self,index):
ifindex+1>self.length():
raiseIndexError('indexoutofbounds')
i=0
node=self.head
whileTrue:
ifi==index-1:
break
node=node.next
i+=1
tmp_node=node.next
node.next=node.next.next
returntmp_node.data
defshow(self):
node=self.head
node_str=''
whilenodeisnotNone:
ifnode.nextisnotNone:
node_str+=str(node.data)+'->'
else:
node_str+=str(node.data)
node=node.next
printnode_str
#Modifytheoriginalpositionvalueandreturntheoldvalue
defchange(self,index,data):
ifindex+1>self.length():
raiseIndexError('indexoutofbounds')
i=0
node=self.head
whileTrue:
ifi==index:
break
node=node.next
i+=1
tmp_data=node.data
node.data=data
returntmp_data
#Tofindthelocationofindexvalue
deffind(self,index):
ifindex+1>self.length():
raiseIndexError('indexoutofbounds')
i=0
node=self.head
whileTrue:
ifi==index:
break
node=node.next
i+=1
returnnode.data
#testcase
n1=Node(0)
n2=Node(1)
n3=Node(2)
n4=Node(3)
n5=Node(4)
node_list=NodeList(n1)
node_list.add_node(n2)
node_list.add_node(n3)
node_list.add_node(n4)
node_list.add_node(n5)
#node=node_list.delete_node(3)
#printnode
#d=node_list.change(0,88)
data=node_list.find(5)
printdata
node_list.show()
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《PythonSocket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。