Class: Lista

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLista

Returns a new instance of Lista.



7
8
9
10
11
# File 'lib/dieta/lista.rb', line 7

def initialize 
	@head=nil
	@tail=nil
	@size=0
end

Instance Attribute Details

#headObject

Returns the value of attribute head.



6
7
8
# File 'lib/dieta/lista.rb', line 6

def head
  @head
end

#sizeObject

Returns the value of attribute size.



6
7
8
# File 'lib/dieta/lista.rb', line 6

def size
  @size
end

#tailObject

Returns the value of attribute tail.



6
7
8
# File 'lib/dieta/lista.rb', line 6

def tail
  @tail
end

Instance Method Details

#eachObject



59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/dieta/lista.rb', line 59

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

#extraer_finalObject



46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/dieta/lista.rb', line 46

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

#extraer_inicioObject



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/dieta/lista.rb', line 23

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

#insertar_final(nodo) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/dieta/lista.rb', line 35

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

#insertar_inicio(nodo) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/dieta/lista.rb', line 12

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