Sha256: 182f700bdb6cfe9899edc63c833eb97330abc4220c0b776d290638d640b11907

Contents?: true

Size: 1.12 KB

Versions: 3

Compression:

Stored size: 1.12 KB

Contents

Nodo = Struct.new(:value, :next, :prev)

class Lista

include Enumerable

    attr_accessor :cabeza, :cola, :nodo_actual
    
    def initialize(cabeza,cola)
        @cabeza = cabeza
	@cola = cola
    end 
    
    def insertar(x)
        node = Nodo.new(x,nil,nil)

	if @cabeza==nil && @cola==nil
		node.prev = @cola
	        node.next = @cabeza
		@nodo_actual = node
	        @cabeza = node
		@cola = node
	else
		node.prev = @cabeza
		node.next = nil
		@nodo_actual = node
		@cabeza.next = node
		@cabeza = node
	end
    end 
    
    def insertar_varios(nodos)
        nodos.each do |nd|
        	insertar(nd)
        end
    end
    
    #eliminar el nodo y cambiar los valores al nodo anterior 
    def extraer_inicio()
       @cola=@cola.next
    end
    
    def extrar_final()
       @cabeza = @cabeza.prev
    end

    def to_s
         @cabeza.to_s 
    end

    def each
        while @cabeza != @cola
            yield @cabeza.value
            @cabeza=@cabeza.prev
        end

        if @cabeza == @cola
           if @cabeza == nil
            nil
           else
            yield @cola.value
           end
        end
    end
end 

Version data entries

3 entries across 3 versions & 3 rubygems

Version Path
alimentos-alu0100648782-0.1.0 lib/alimentos/lista.rb
alimentos-0.1.0 lib/alimentos/lista.rb
dieta-alu0100226300-0.1.0 lib/dieta/lista.rb