Python单链表的简单实现方法
程序员文章站
2023-11-11 19:27:40
本文实例讲述了python单链表的简单实现方法,分享给大家供大家参考。具体方法如下:
通常来说,要定义一个单链表,首先定义链表元素:element.它包含3个字段:
l...
本文实例讲述了python单链表的简单实现方法,分享给大家供大家参考。具体方法如下:
通常来说,要定义一个单链表,首先定义链表元素:element.它包含3个字段:
list:标识自己属于哪一个list
datum:改元素的value
next:下一个节点的位置
具体实现代码如下:
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程序设计有所帮助。
上一篇: js编程开发常见异常及解决方案
下一篇: css3选择器的属性和特性