summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
02564e8)
Signed-off-by: Jean Privat <jean@pryen.org>
# O(1)
redef fun is_empty do return _head == null
# O(1)
redef fun is_empty do return _head == null
- # O(n)
- redef fun length
- do
- var l = 0
- var t = _head
- while t != null do
- l += 1
- t = t.next
- end
- return l
- end
+ # O(1)
+ redef var length = 0
# O(n)
redef fun has(e) do return search_node_after(e, _head) != null
# O(n)
redef fun has(e) do return search_node_after(e, _head) != null
node.prev = _tail
end
_tail = node
node.prev = _tail
end
_tail = node
_head.prev = node
end
_head = node
_head.prev = node
end
_head = node
_tail.next.prev = _tail
end
_tail = l._tail
_tail.next.prev = _tail
end
_tail = l._tail
else
_tail.next = null
end
else
_tail.next = null
end
else
_head.prev = null
end
else
_head.prev = null
end
# Remove the node (ie. atach prev and next)
private fun remove_node(node: ListNode[E])
do
# Remove the node (ie. atach prev and next)
private fun remove_node(node: ListNode[E])
do
if node.prev == null then
_head = node.next
if node.next == null then
if node.prev == null then
_head = node.next
if node.next == null then
private fun insert_before(element: E, node: ListNode[E])
do
private fun insert_before(element: E, node: ListNode[E])
do
var nnode = new ListNode[E](element)
var prev = node.prev
if prev == null then
var nnode = new ListNode[E](element)
var prev = node.prev
if prev == null then