Sha256: b3700c4d748897b0ef01ae498e0b184a5c03d7e909f861214cf2dbd564d9459c

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

#Author: Eduardo de la Paz González

require "prct06/version"
Nodo = Struct.new(:value, :next, :prev)

class Lista
	#Reader y writer para cada variable
	attr_reader :tail, :beginning
	attr_writer :tail, :beginning
	#Se incluye Enumerable
	include Enumerable

	def initialize
		@beginning = @tail = nil
	end
	#Método add para añadir un nodo a la lista
	def add (valor)
		nodo = Nodo.new(valor)
		
		@beginning = nodo if @beginning.nil?
		
		@tail.next = nodo unless @tail.nil? 
		nodo.prev = @tail unless @tail.nil?
		@tail = nodo
	end
	#Método pop para sacar un elemento por el principio
	def pop 
		aux = @beginning
		@beginning = @beginning.next
		aux

	end
	#Método size que devuelve el tamaño de la lista
	def size
		size = 0
		$i = @beginning
		while $i != nil do
			size = size + 1
			$i = $i.next
		end
		size
	end
	#Definición de to_s para mostrar la lista por pantalla
	def to_s
		$i = @beginning
		while $i != nil do
			mostrar = ""
			puts "#{$i.value}"
			$i = $i.next
		end
	end
	#Definición del each para Enumerable
	def each
		aux = @beginning
		while aux != nil do
			yield aux.value
			aux = aux.next
		end	
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
prct11_edu-0.3.0 lib/prct06/lista.rb