Sha256: 61e1fa2a32da1cda8ecc46c8e7aae08f8fd748727622e5b374dc13061474650c

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

class Dl_linked_list 
	
	attr_reader :inicio, :tail
	Node = Struct.new(:value,:next,:prev)
	def initialize(&block)
			@inicio= nil
			@tail= nil
	if(block_given?)
		instance_eval(&block)
	end		
	end	
	def elemento(options)
		insert_inicio(options[:data])
	end		
	def insert_final(data)
			if(@inicio==nil && @tail==nil)
				aux=Node.new(data,nil,nil)
				@inicio= aux
				@tail = @inicio
			else
			aux=Node.new(data,nil,@tail)
			@tail[:next]=aux
			@tail=aux

			end
	end
	def insert_inicio(data)
			if(@inicio==nil && @tail==nil)
				aux=Node.new(data,nil,nil)
				@inicio=aux
				@tail = @inicio
			else
				aux=Node.new(data,nil,@inicio)
				@inicio[:prev]=aux
				@inicio=aux
			end
	end
				
	def extract_inicio
		if(@inicio!=nil)
		temp= @inicio[:value]
		@inicio=@inicio[:next]
		@inicio[:prev]=nil
		temp
		end
	end
	def extract_final
		if(@inicio!=nil)
		temp=@tail[:value]
		@tail=@tail[:prev]
		@tail[:next]=nil
		end
	end
	def to_s
		temp = @inicio
		cont= 1
		string = "" 
		while(temp!=nil)
			string+="Valor numero #{cont}) Equivale a #{temp[:value]}\n"
			temp=temp[:next]
			cont+=1
		end

		string
	end

end	

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dieta_alu0100885941-0.1.0 lib/dieta/dl_list.rb