Sha256: 2b91df5af5f2b5a4ca4bb78ea61decb0b22376b389e0cac7fade70e2105e59f6

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

Nodo = Struct.new(:value, :siguiente, :previo)
class Nodo

	include Comparable
	def <=>(other)
		value <=> other.value
	end

end



class List
	

	
	attr_accessor :head, :tail
	 
	include Enumerable
	
	def initialize(head)
	

	   @head = head
	   @tail = head
	    
	    
	end
	
	def insert_head(nodo)
	
		
		aux = @head
		
		@head.siguiente = nodo
		@head = @head.siguiente
		@head.previo = aux
		
		
	end
	
	def insert_tail(nodo)
		
		aux = @tail
		@tail = nodo
		aux.previo = @tail
		@tail.siguiente = aux
	
	end
	
	def remove_head
	
		aux = @head
		@head = @head.previo
		return aux.value
		#puts @head.value
		
			
		
	end

	
	def print
	
		actual = @tail
		
		while actual != nil
		
			"#{actual.value}"
			actual = actual.siguiente
		
		end
		
	end
	
	def remove_tail
	
		actual = @tail
		if @tail.siguiente != nil
		@tail = @tail.siguiente
		end
		return actual.value

	
	end
	
	def each
	
	   actual = @tail
	
		while actual != nil
		   yield actual.value
		   actual = actual.siguiente
		end
	
	end
	
	def invert
		
		reverse_each {|x|}
		
			
	end

	
=begin	def invert
	
		actual = @tail
		
		n = Nodo.new(actual.value)
		aux = List.new(n)
		actual = actual.siguiente
		
		while actual != nil
		
			n = Nodo.new(actual.value)
			aux.insert_tail(n)
			
			actual = actual.siguiente
		
		end
		
		return aux
		

	end
=end
end
	





Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
exam1-0.0.1 lib/exam1/linkedlist.rb~