Package gbp :: Package rpm :: Module linkedlist :: Class LinkedList
[hide private]
[frames] | no frames]

Class LinkedList

collections.Iterable --+
                       |
                      LinkedList

Doubly linked list

Instance Methods [hide private]
 
__init__(self)
 
__iter__(self)
 
__len__(self)
 
first(self)
Get the first node of the list
 
prepend(self, data)
Insert to the beginning of list
 
append(self, data)
Insert to the end of list
 
insert_before(self, node, data="")
Insert before a node
 
insert_after(self, node, data="")
Insert after a node
 
delete(self, node)
Delete node
Method Details [hide private]

first(self)

 

Get the first node of the list

Decorators:
  • @property

prepend(self, data)

 

Insert to the beginning of list

>>> list = LinkedList()
>>> [str(data) for data in list]
[]
>>> node = list.prepend("foo")
>>> len(list)
1
>>> node = list.prepend("bar")
>>> [str(data) for data in list]
['bar', 'foo']

append(self, data)

 

Insert to the end of list

>>> list = LinkedList()
>>> node = list.append('foo')
>>> len(list)
1
>>> node = list.append('bar')
>>> [str(data) for data in list]
['foo', 'bar']

insert_before(self, node, data="")

 

Insert before a node

>>> list = LinkedList()
>>> node1 = list.append('foo')
>>> node2 = list.insert_before(node1, 'bar')
>>> node3 = list.insert_before(node1, 'baz')
>>> [str(data) for data in list]
['bar', 'baz', 'foo']

insert_after(self, node, data="")

 

Insert after a node

>>> list = LinkedList()
>>> node1 = list.prepend('foo')
>>> node2 = list.insert_after(node1, 'bar')
>>> node3 = list.insert_after(node1, 'baz')
>>> [str(data) for data in list]
['foo', 'baz', 'bar']

delete(self, node)

 

Delete node

>>> list = LinkedList()
>>> node1 = list.prepend('foo')
>>> node2 = list.insert_after(node1, 'bar')
>>> node3 = list.insert_before(node2, 'baz')
>>> [str(data) for data in list]
['foo', 'baz', 'bar']
>>> str(list.delete(node3))
'foo'
>>> [str(data) for data in list]
['foo', 'bar']
>>> print "%s" % node3
<BLANKLINE>
>>> str(list.delete(node1))
'bar'
>>> [str(data) for data in list]
['bar']
>>> list.delete(node2)
>>> [str(data) for data in list]
[]