class DLinkedList::List
Lista de referencias bibliográficas.
Attributes
head[R]
Nodo cabeza de la lista.
size[R]
Tamaño de la lista.
tail[R]
Nodo cola de la lista.
Public Class Methods
new()
click to toggle source
Inicializa la lista vacía.
# File lib/dLinkedList/dLinkedList.rb, line 228 def initialize() @head = nil @tail = nil @size = 0 end
Public Instance Methods
each() { |value| ... }
click to toggle source
Itera la lista, ejecutando el bloque pasado pasándole como parámetro el valor de cada nodo.
# File lib/dLinkedList/dLinkedList.rb, line 292 def each nodo = @head until nodo.nil? yield nodo.value nodo = nodo.next_node end end
empty?()
click to toggle source
Devuelve si la lista está vacía.
# File lib/dLinkedList/dLinkedList.rb, line 235 def empty?() return (@head == nil) end
pop()
click to toggle source
Extrae y devuelve la referencia del principio de la lista.
# File lib/dLinkedList/dLinkedList.rb, line 272 def pop() raise RuntimeError, "[List.pop]: No se puede extraer elementos de una lista vacía" if empty?() nodo = @head if @head.equal?(@tail) @head = nil @tail = nil else @head = @head.next_node @head.prev_node = nil end @size -= 1 return nodo.value end
push(ref)
click to toggle source
Inserta la referencia ref al final de la lista.
# File lib/dLinkedList/dLinkedList.rb, line 254 def push(ref) if empty?() return push_empty(ref) else nodo = Node.new(ref, nil, @tail) @tail.next_node = nodo @tail = nodo @size += 1 return self end end
push_multi(*refs)
click to toggle source
Inserta múltiples elementos al final de la lista.
# File lib/dLinkedList/dLinkedList.rb, line 267 def push_multi(*refs) refs.each { |ref| push(ref)} end
to_s()
click to toggle source
Devuelve la lista de referencias ordenadas en líneas distintas como cadena.
# File lib/dLinkedList/dLinkedList.rb, line 303 def to_s s_arr = self.sort() return s_arr.join("\n") end