class Lista

Attributes

head[RW]
size[RW]
tail[RW]

Public Class Methods

new() click to toggle source
# File lib/MenuDieta/lista.rb, line 10
def initialize()
    @head = nil
    @size = 0
    @tail = nil
end

Public Instance Methods

each() { |nil| ... } click to toggle source
# File lib/MenuDieta/lista.rb, line 91
def each
    if(@head == nil) && (@tail == nil)
        yield nil
    elsif(@head == @tail)
        yield @head.value
    else
        while(@head != nil)
            yield @head.value
            @head = @head.next
        end
    end
end
empty() click to toggle source
# File lib/MenuDieta/lista.rb, line 26
def empty
    if(size == 0)
        return true
    else
        return false
    end
end
extractBeginning() click to toggle source
# File lib/MenuDieta/lista.rb, line 75
def extractBeginning
    aux = self.head.next
    aux.prev = nil
    self.head.next = nil
    self.head = aux
    aux = nil
    self.size -= 1
end
extractEnd() click to toggle source
# File lib/MenuDieta/lista.rb, line 83
def extractEnd
    aux = self.tail.prev
    self.tail.prev = nil
    aux.next = nil
    self.tail = aux
    aux = nil
    self.size -= 1
end
insertBeginning(nodo) click to toggle source
# File lib/MenuDieta/lista.rb, line 51
def insertBeginning(nodo)
    if(empty)
        self.head = nodo
        self.tail = nodo
        self.size += 1
    else
        self.head.prev = nodo
        nodo.next = self.head
        self.head = nodo
        self.size += 1
    end
end
insertEnd(nodo) click to toggle source
# File lib/MenuDieta/lista.rb, line 63
def insertEnd(nodo)
    if(empty)
        self.head = nodo
        self.tail = nodo
        self.size += 1
    else
        self.tail.next = nodo
        nodo.prev = self.tail
        self.tail = nodo
        self.size += 1
    end
end
pop() click to toggle source
# File lib/MenuDieta/lista.rb, line 45
def pop
    aux = self.head
    self.head = self.head.next
    aux.next = nil
    self.size = self.size - 1
end
push(nodo) click to toggle source
# File lib/MenuDieta/lista.rb, line 15
def push(nodo)
    if(empty)
        self.head = nodo
        self.size += 1
        self.tail = nodo
    else
        nodo.next= head
        self.head = nodo            
        self.size += 1
    end
end
to_s() click to toggle source
# File lib/MenuDieta/lista.rb, line 33
def to_s
    aux = "| #{head.value} "
    i = 1
    siguiente = head.next
    while i < size
        aux += "| #{siguiente.value} "
        siguiente = siguiente.next
        i += 1
    end
    aux += "|"
    return aux
end