On Fri, Sep 21, 2012 at 1:45 PM, Dennis Lee Bieber <wlfr...@ix.netcom.com> wrote: > You can probably implement them, but they're not going to be very > efficient. (And never "remove" an element from the linked-list > implementation because Python would shift all the other elements, hence > your "links" become invalid).
I'm not sure what you mean by that last comment. class Node(object): def __init__(self, data, next): self.data = data self.next = next class LinkedList(object): def __init__(self): self._head = None def __iter__(self): node = self._head while node: yield node.data node = node.next def insert_front(self, value): self._head = Node(value, self._head) def remove(self, value): prior, node = None, self._head while node: if node.data == value: if prior: prior.next = node.next else: self._head = node.next break prior, node = node, node.next else: raise ValueError("value not found") >>> li = LinkedList() >>> for char in 'edcba': ... li.insert_front(char) ... >>> print ''.join(li) abcde >>> li.remove('c') >>> print ''.join(li) abde It seems to work fine to me. -- http://mail.python.org/mailman/listinfo/python-list