class List2
Gestionar una Lista doblemente enlazada
Public Instance Methods
each() { |value| ... }
click to toggle source
Lee lista de nodos
# File lib/bibliografia/lista2_impl.rb, line 9 def each n = @head while n != nil yield n.value n = n.next end end
extract_first()
click to toggle source
Extrae primer elemento
# File lib/bibliografia/lista2_impl.rb, line 47 def extract_first e = @head @head = e.next if @head != nil @head.prev = nil else @tail = @head end e end
extract_last()
click to toggle source
Extrae Ășltimo elemento
# File lib/bibliografia/lista2_impl.rb, line 59 def extract_last e = @tail @tail = e.prev if @tail != nil @tail.next = nil else @head = @tail end e end
ins_end(value)
click to toggle source
Insertar un nodo al final de la lista
# File lib/bibliografia/lista2_impl.rb, line 35 def ins_end(value) if @tail != nil @tail = Node.new(value, nil, @tail) n = @tail.prev n.next = @tail else @head = Node.new(value, nil, nil) @tail = @head end end
ins_start(value)
click to toggle source
Inserta un nodo al principio de la lista
# File lib/bibliografia/lista2_impl.rb, line 18 def ins_start(value) if @head != nil && @head.next != nil n = @head @head = Node.new(value, n, nil) n.prev = @head elsif @head != nil n = @head @head = Node.new(value, n, nil) n.prev = @head @tail = n else @head = Node.new(value, nil, nil) @tail = @head end end