Python單鏈表的簡單實現(xiàn)方法
更新時間:2014年09月23日 16:36:03 投稿:shichen2014
這篇文章主要介紹了Python單鏈表的簡單實現(xiàn)方法,包括定義所需的字段及具體實現(xiàn)代碼的分析,需要的朋友可以參考下
本文實例講述了Python單鏈表的簡單實現(xiàn)方法,分享給大家供大家參考。具體方法如下:
通常來說,要定義一個單鏈表,首先定義鏈表元素:Element.它包含3個字段:
list:標識自己屬于哪一個list
datum:改元素的value
next:下一個節(jié)點的位置
具體實現(xiàn)代碼如下:
class LinkedList(object): class Element(object): def __init__(self,list,datum,next): self._list = list self._datum = datum self._next = next def getDatum(self): return self._datum datum = property( fget = lambda self: self.getDatum()) def getNext(self): return self._next next = property( fget = lambda self: self.getNext()) def __init__(self): self._head = None self._tail = None def getHead(self): return self._head head = property( fget = lambda self: self.getHead()) def prepend(self,item): tmp = self.Element (self,item,self._head) if self._head is None: self._tail = tmp self._head = tmp def insert(self, pos, item): i = 0 p = self._head while p != None and i < pos -1: p = p._next i += 1 if p == None or i > pos-1: return -1 tmp = self.Element(self, item, p._next) p._next = tmp return 1 def getItem(self, pos): i = 0 p = self._head while p != None and i < pos -1: p = p._next i += 1 if p == None or i > post-1: return -1 return p._datum def delete(self, pos): i = 0 p = self._head while p != None and i < pos -1: p = p._next i += 1 if p == None or i > post-1: return -1 q = p._next p._nex = q._next datum = p._datum return datum def setItem(self, pos, item): i = 0 p = self._head while p != None and i < pos -1: p = p._next i += 1 if p == None or i > post-1: return -1 p._datum = item return 1 def find(self, pos, item): i = 0 p = self._head while p != None and i < pos -1: if p._datum == item: return 1 p = p._next i += 1 return -1 def empty(self): if self._head == None: return 1 return 0 def size(self): i = 0 p = self._head while p != None and i < pos -1: p = p._next i += 1 return i def clear(self): self._head = None self._tail = None test = LinkedList() test.prepend('test0') print test.insert(1, 'test') print test.head.datum print test.head.next.datum
希望本文所述對大家的Python程序設(shè)計有所幫助。
您可能感興趣的文章:
相關(guān)文章
Python XML模塊數(shù)據(jù)解析與生成利器的使用掌握
這篇文章主要為大家介紹了Python XML模塊數(shù)據(jù)解析與生成利器的使用實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01Python光學(xué)仿真學(xué)習(xí)處理高斯光束分布圖像
這篇文章主要為大家介紹了Python光學(xué)仿真學(xué)習(xí)之如何處理高斯光束的分布圖像,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2021-10-10python入門:這篇文章帶你直接學(xué)會python
本教程并未涵蓋Python語言的全部內(nèi)容,只是一個入門的教程,Python有非常多的庫以及很多的功能特點需要學(xué)習(xí),小編只是拋磚引玉,希望大家可以從中受益2018-09-09