Method: DSkipList#delete
- Defined in:
- lib/dskiplist.rb
#delete(search_key) ⇒ Object
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# File 'lib/dskiplist.rb', line 87 def delete(search_key) update = [] x = @header @level.downto(0) do |i| while x.forward[i] and x.forward[i].key < search_key x = x.forward[i] end update[i] = x end x = x.forward[0] if x and x.key == search_key 0.upto(x.forward.length - 1) do |i| update[i].forward[i] = x.forward[i] end return true else return false end end |