Sha256: b9ad49773fef45c7f7e87c4d8915a22caf0e4f5d1be3806c6388499249dd2ca4

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

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

class Lista 
	include Enumerable
	attr_accessor :head,:tail,:size
	def initialize 
		@head=nil
		@tail=nil
		@size=0
	end
	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
	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
	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
	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
	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
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dieta-alu0100818819-0.1.4 lib/dieta/lista.rb