class Alimento::List
Attributes
head[R]
tail[R]
Public Class Methods
new(value)
click to toggle source
@note Constructor de la clase @param value Contenido de un nodo
# File lib/alimento/list.rb, line 15 def initialize (value) @head = Node.new(value, nil, nil) @tail = @head end
Public Instance Methods
each() { |actual| ... }
click to toggle source
@note Recorrer la lista
# File lib/alimento/list.rb, line 22 def each return nil unless block_given? actual = self.tail while actual yield actual actual = actual.next end end
extract_head()
click to toggle source
@note Extraer el elemento en la cabeza de la lista @return [Node] Nodo de la lista extraido
# File lib/alimento/list.rb, line 66 def extract_head actual_head = @head new_head = actual_head.prev actual_head.prev = nil new_head.next = nil return new_head end
extract_tail()
click to toggle source
@note Extraer elemento en la cabeza de la lista @return [Node] Nodo de la lista extraido
# File lib/alimento/list.rb, line 77 def extract_tail actual_tail = @tail new_tail = actual_tail.next actual_tail.next = nil new_tail.prev = nil return new_tail end
insert_head(value)
click to toggle source
@note Insertar elemento en la cabeza de la lista @param value Contenido del nodo a insertar
# File lib/alimento/list.rb, line 34 def insert_head(value) actual_head = @head new_head = Node.new(value, nil,actual_head) actual_head.next = new_head @head = new_head end
insert_sundry(value_array)
click to toggle source
@note Insertar varios elementos en la lista @param value_array Vector de elementos a insertar en la lista
# File lib/alimento/list.rb, line 54 def insert_sundry(value_array) i = 0 while i < value_array.length do insert_head(value_array[i]) i += 1 end end
insert_tail(value)
click to toggle source
@note Insertar elemento por la cola de la lista @param value Contenido del nodo a insertar
# File lib/alimento/list.rb, line 44 def insert_tail(value) actual_tail = @tail new_tail = Node.new(value, actual_tail, nil) actual_tail.prev = new_tail @tail = new_tail end