class List

Attributes

head[RW]
tail[RW]

Public Class Methods

new(nodes) click to toggle source
# File lib/lpp_Grupo3/list.rb, line 8
def initialize(nodes)
@Node = Struct.new(:value, :siguiente, :anterior)
@head = nil
@tail = nil
@empty=true
@first=true
@lasteach = nil
enqueque(nodes)
end

Public Instance Methods

dequeque() click to toggle source
# File lib/lpp_Grupo3/list.rb, line 29
def dequeque
    if @head == @tail
        nodo = @head[:value]
        @head = nil
        @tail = nil
        @empty = true
    else
        nodo = @head[:value]
        @head = @head[:siguiente]
        @head[:anterior] = nil
    end
    nodo
end
each() { |lasteach| ... } click to toggle source
# File lib/lpp_Grupo3/list.rb, line 50
def each
    @lasteach=nil
    while @lasteach != @tail
        if @lasteach==nil
            @lasteach=@head
        else
            @lasteach=@lasteach[:siguiente]
        end
        yield @lasteach[:value]
    end
end
enqueque(nodo) click to toggle source
# File lib/lpp_Grupo3/list.rb, line 42
def enqueque(nodo)
    insertar(nodo)
end
insertar(node) click to toggle source
# File lib/lpp_Grupo3/list.rb, line 17
def insertar(node)
    if @empty == true
        @estenodo = @Node.new(node,nil,nil)
        @head=@estenodo
        @tail=@estenodo
        @empty=false
    else
        @estenodo = @Node.new(node,nil,@tail)
        @tail[:siguiente]=@estenodo
        @tail = @estenodo
    end
end