class Algorithmable::DataStructs::LinkedList::Doubly
Public Instance Methods
delete(item)
click to toggle source
# File lib/algorithmable/data_structs/linked_list/doubly.rb, line 55 def delete(item) node = search(item) return unless node prev_node = node.prev next_node = node.next if prev_node.nil? @front = next_node else prev_node.next = next_node end if next_node.nil? @back = prev_node else next_node.prev = prev_node end @size -= 1 item end
pop_back()
click to toggle source
# File lib/algorithmable/data_structs/linked_list/doubly.rb, line 51 def pop_back delete peek_back end
pop_front()
click to toggle source
# File lib/algorithmable/data_structs/linked_list/doubly.rb, line 47 def pop_front delete peek_front end
push_back(item)
click to toggle source
# File lib/algorithmable/data_structs/linked_list/doubly.rb, line 32 def push_back(item) prev_back = @back node = Node.new item, prev_back, nil @back = node if prev_back prev_back.next = node else @front = node end @size += 1 item end
push_front(item)
click to toggle source
# File lib/algorithmable/data_structs/linked_list/doubly.rb, line 17 def push_front(item) prev_front = @front node = new_node item, nil, prev_front @front = node if prev_front prev_front.prev = node else @back = node end @size += 1 item end
Private Instance Methods
new_node(item, prev_pointer = nil, next_pinter = nil)
click to toggle source
# File lib/algorithmable/data_structs/linked_list/doubly.rb, line 80 def new_node(item, prev_pointer = nil, next_pinter = nil) Node.new item, prev_pointer, next_pinter end