class ListaDoble
CLase que representa una lista doblemente enlazada
Attributes
head[R]
tail[R]
Public Class Methods
new()
click to toggle source
# File lib/menu_dietetico/lista.rb, line 10 def initialize() @head = nil @tail = nil end
Public Instance Methods
each() { |value| ... }
click to toggle source
# File lib/menu_dietetico/lista.rb, line 85 def each node = @head while(node != nil) yield node.value node = node.next end end
empty()
click to toggle source
# File lib/menu_dietetico/lista.rb, line 15 def empty() vacio = false if (@head == nil) vacio = true elsif vacio == false end return vacio end
extract_head()
click to toggle source
# File lib/menu_dietetico/lista.rb, line 47 def extract_head() if (empty()) return nil elsif node = @head @head = @head.next node.next = nil node.prev = nil return node.value end end
extract_tail()
click to toggle source
# File lib/menu_dietetico/lista.rb, line 59 def extract_tail() if (empty()) return nil elsif node = @tail @tail = @tail.prev if (@tail) @tail.next = nil elsif @head == nil end node.next = nil node.prev = nil return node.value end end
insert_head(node)
click to toggle source
# File lib/menu_dietetico/lista.rb, line 25 def insert_head(node) if (empty()) @head = node @tail = @head elsif @head.prev = node node.next = @head @head = node end end
insert_muchos(nodes)
click to toggle source
# File lib/menu_dietetico/lista.rb, line 76 def insert_muchos(nodes) i=0 total=nodes.length while i<total do insert_head(nodes[i]) i=i+1 end end
insert_tail(node)
click to toggle source
# File lib/menu_dietetico/lista.rb, line 36 def insert_tail(node) if (empty()) @head = node @tail = @head elsif @tail.next = node node.prev = @tail @tail = node end end