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