class Lista

Attributes

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

Public Class Methods

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

Public Instance Methods

each() { |nil| ... } click to toggle source
# File lib/dieta/lista.rb, line 59
def each
        if(@head == nil) &&(@tail==nil)
                yield nil 
        elseif(@head==@tail)
                yield @head.value
        else
                        while(@head.!= nil)
                                yield @head.value
                                @head=@head.next
                        end
        end
end
extraer_final() click to toggle source
# File lib/dieta/lista.rb, line 46
def extraer_final()
        aux=self.tail
        self.tail=self.tail.prev
        aux.next=nil
        aux.prev=nil
        if self.tail==nil
                self.head=nil
        else
                self.tail.next=nil
        end
        self.size-=1
        return aux
end
extraer_inicio() click to toggle source
# File lib/dieta/lista.rb, line 23
def extraer_inicio()
        aux=self.head
        self.head=self.head.next

        aux.next=nil
        aux.prev=nil
        if head==nil
                tail=nil
        end
        self.size-=1
        return aux
end
insertar_final(nodo) click to toggle source
# File lib/dieta/lista.rb, line 35
def insertar_final(nodo)
                nodo.prev=tail
                nodo.next=nil
                if (self.tail != nil)
                        self.tail.next=nodo
                else
                        self.head=nodo
                end
                self.size+=1
                self.tail=nodo
end
insertar_inicio(nodo) click to toggle source
# File lib/dieta/lista.rb, line 12
def insertar_inicio(nodo)
                nodo.next=head
                nodo.prev=nil
                if (self.tail == nil)
                        self.tail=nodo
                else
                        self.head.prev=nodo
                end
                self.size+=1
                self.head=nodo
end