class List
Representa una lista doblemente enlazada con una cabeza y una cola, pudiéndose insertar un array de alimentos o alimentos individuales
- Author
-
Alberto González (alu0100949568@ull.edu.es)
- Copyright
-
Cretive Commons
- License
-
Distributes under the same terms as Ruby
Public Class Methods
new()
click to toggle source
# File lib/P07/list.rb, line 4 def initialize @head = @tail = nil end
Public Instance Methods
each() { |value| ... }
click to toggle source
Método que nos permite recorrer cada uno de los nodos de nuestra lista
# File lib/P08/list.rb, line 99 def each next_val = @tail while next_val != nil do yield next_val.value next_val = next_val.next end end
head()
click to toggle source
# File lib/P07/list.rb, line 39 def head @head.value unless @head.nil? end
push(value)
click to toggle source
# File lib/P07/list.rb, line 8 def push(value) ##Si es un array if value.is_a?(Array) value.each do |val| prev = @tail unless @tail.nil? while prev != @head do prev = prev.next end node = Node.new(val, nil, prev) @tail = node if @tail.nil? @head.next = node unless @head.nil? @head = node end else #Si es un único valor prev = @tail unless @tail.nil? while prev != @head do prev = prev.next end node = Node.new(value, nil, prev) @tail = node if @tail.nil? @head.next = node unless @head.nil? @head = node end end
remove_head()
click to toggle source
# File lib/P07/list.rb, line 51 def remove_head @head = @head.prev @head.next = nil end
remove_tail()
click to toggle source
# File lib/P07/list.rb, line 47 def remove_tail @tail = @tail.next end
size()
click to toggle source
# File lib/P07/list.rb, line 70 def size count = 0 next_val = @tail unless @tail.nil? while next_val != nil do next_val = next_val.next count +=1 end "#{count}" end
tail()
click to toggle source
# File lib/P07/list.rb, line 43 def tail @tail.value unless @tail.nil? end
to_s()
click to toggle source
# File lib/P07/list.rb, line 56 def to_s array = "[" next_val = @tail unless @tail.nil? while next_val != nil do array = array + next_val.value.to_s + ", " next_val = next_val.next if next_val == nil #For las element array = array.chomp(', ') + "]" end end "#{array}" end