#!/usr/bin/env python class Node(object): def __init__(self): self.next = None self.previous = None self.element = None class LinkedList(object): def __init__(self): self.n = 0 self.last = Node() self.first = self.last def append(self, element): self.last.element = element self.last.next = Node() tmp = self.last self.last = self.last.next self.last.previous = tmp self.n += 1 def front(self): if self.n == 0: return None e = self.first.element self.first = self.first.next self.n -= 1 return e def back(self): if self.n == 0: return None e = self.last.previous.element self.last = self.last.previous self.last.next = Node() self.n -= 1 return e def size(self): return self.n def elements(self): i = self.first while i.element: yield i.element i = i.next if __name__ == "__main__": l = LinkedList() assert None == l.front() assert None == l.back() l.append(1) l.append(2) l.append(3) assert 1 == l.front() assert 2 == l.front() assert 3 == l.front() l.append(1) l.append(2) l.append(3) assert 3 == l.back() assert 2 == l.back() assert 1 == l.back() l.append(1) assert 1 == l.back() l.append(1) assert 1 == l.front()
Sunday, April 22, 2012
How to Implement Doubly Linked List in Python
This is my simple implementation of doubly linked list in Python.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment