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程序设计有所帮助。