Python单链表的简单实现方法
本文实例讲述了Python单链表的简单实现方法,分享给大家供大家参考。具体方法如下:
通常来说,要定义一个单链表,首先定义链表元素:Element.它包含3个字段:
list:标识自己属于哪一个list
datum:改元素的value
next:下一个节点的位置
具体实现代码如下:
classLinkedList(object): classElement(object): def__init__(self,list,datum,next): self._list=list self._datum=datum self._next=next defgetDatum(self): returnself._datum datum=property( fget=lambdaself:self.getDatum()) defgetNext(self): returnself._next next=property( fget=lambdaself:self.getNext()) def__init__(self): self._head=None self._tail=None defgetHead(self): returnself._head head=property( fget=lambdaself:self.getHead()) defprepend(self,item): tmp=self.Element(self,item,self._head) ifself._headisNone: self._tail=tmp self._head=tmp definsert(self,pos,item): i=0 p=self._head whilep!=Noneandi<pos-1: p=p._next i+=1 ifp==Noneori>pos-1: return-1 tmp=self.Element(self,item,p._next) p._next=tmp return1 defgetItem(self,pos): i=0 p=self._head whilep!=Noneandi<pos-1: p=p._next i+=1 ifp==Noneori>post-1: return-1 returnp._datum defdelete(self,pos): i=0 p=self._head whilep!=Noneandi<pos-1: p=p._next i+=1 ifp==Noneori>post-1: return-1 q=p._next p._nex=q._next datum=p._datum returndatum defsetItem(self,pos,item): i=0 p=self._head whilep!=Noneandi<pos-1: p=p._next i+=1 ifp==Noneori>post-1: return-1 p._datum=item return1 deffind(self,pos,item): i=0 p=self._head whilep!=Noneandi<pos-1: ifp._datum==item: return1 p=p._next i+=1 return-1 defempty(self): ifself._head==None: return1 return0 defsize(self): i=0 p=self._head whilep!=Noneandi<pos-1: p=p._next i+=1 returni defclear(self): self._head=None self._tail=None test=LinkedList() test.prepend('test0') printtest.insert(1,'test') printtest.head.datum printtest.head.next.datum
希望本文所述对大家的Python程序设计有所帮助。