Class: Lista

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/prct06/lista.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLista

Returns a new instance of Lista



13
14
15
# File 'lib/prct06/lista.rb', line 13

def initialize
	@beginning = @tail = nil
end

Instance Attribute Details

#beginningObject

Reader y writer para cada variable



8
9
10
# File 'lib/prct06/lista.rb', line 8

def beginning
  @beginning
end

#tailObject

Reader y writer para cada variable



8
9
10
# File 'lib/prct06/lista.rb', line 8

def tail
  @tail
end

Instance Method Details

#add(valor) ⇒ Object

Método add para añadir un nodo a la lista



17
18
19
20
21
22
23
24
25
# File 'lib/prct06/lista.rb', line 17

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

#eachObject

Definición del each para Enumerable



53
54
55
56
57
58
59
# File 'lib/prct06/lista.rb', line 53

def each
	aux = @beginning
	while aux != nil do
		yield aux
		aux = aux.next
	end	
end

#popObject

Método pop para sacar un elemento por el principio



27
28
29
30
31
32
# File 'lib/prct06/lista.rb', line 27

def pop 
	aux = @beginning
	@beginning = @beginning.next
	aux

end

#sizeObject

Método size que devuelve el tamaño de la lista



34
35
36
37
38
39
40
41
42
# File 'lib/prct06/lista.rb', line 34

def size
	size = 0
	$i = @beginning
	while $i != nil do
		size = size + 1
		$i = $i.next
	end
	size
end

#to_sObject

Definición de to_s para mostrar la lista por pantalla



44
45
46
47
48
49
50
51
# File 'lib/prct06/lista.rb', line 44

def to_s
	$i = @beginning
	while $i != nil do
		mostrar = ""
		puts "#{$i.value}"
		$i = $i.next
	end
end