Class: Lista

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

Overview

  • insert_beggining() - Insertamos un nodo en el inicio de la lista

  • insert_end() - Insertamos un nodo en el fin de la lista

  • extract_beggining() - Extraemos un nodo del inicio de la lista

  • extract_end() - Extraemos un nodo del fin de la lista

  • many_insertions_in_beggining() - Insertamos vector de nodos en el inicio de la lista

  • many_insertions_in_end() - Insertamos vector de nodos en el fin de la lista

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLista

  • @fin - Fin de la lista



35
36
37
38
# File 'lib/dieta/lista.rb', line 35

def initialize()
	@top = nil
	@fin = nil
end

Instance Attribute Details

#finObject

Getter de top y fin con permisos de lectura y escritura



28
29
30
# File 'lib/dieta/lista.rb', line 28

def fin
  @fin
end

#topObject

Getter de top y fin con permisos de lectura y escritura



28
29
30
# File 'lib/dieta/lista.rb', line 28

def top
  @top
end

Instance Method Details

#eachObject

  • @aux - Estara inicializado al @top de la lista



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

def each
	aux = @top
	while aux!=nil 
		yield aux.value
		aux = aux.next
	end
end

#extract_begginingObject

  • helper - Elemento auxiliar para insertar elementos en el inicio



106
107
108
109
110
111
112
113
114
# File 'lib/dieta/lista.rb', line 106

def extract_beggining()
	if(@top == nil)
		return nil
	elsif 
		helper = @top
        @top = @top.next
        return helper.value
	end
end

#extract_endObject

  • helper - Elemento auxiliar para insertar elementos en el inicio



121
122
123
124
125
126
127
128
129
# File 'lib/dieta/lista.rb', line 121

def extract_end()
	if(@top == nil)
		return nil
	elsif 
		helper = @fin
		@fin = @fin.prev
		return helper.value
	end
end

#insert_beggining(valor) ⇒ Object

  • valor - Valor del nodo a insertar

  • element - Nodo a insertar

  • helper - Elemento auxiliar para insertar elementos en el inicio



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

def insert_beggining (valor)
	element = Node.new(valor, nil, nil)
	if(@top == nil)
		@top = element
		@fin = element
		@top.next = nil
		@top.prev = nil
	elsif
		helper = @top
		@top = element
		@top.next = helper
		helper.prev = @top
	end
end

#insert_end(valor) ⇒ Object

  • valor - Valor del nodo a insertar

  • element - Nodo a insertar

  • helper - Elemento auxiliar para insertar elementos en el inicio



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# File 'lib/dieta/lista.rb', line 83

def insert_end (valor)
	element = Node.new(valor, nil, nil)
	if(@top==nil)
		@top = element
		@fin = element
		@top.next = nil
		@top.prev = nil
		@fin.next = nil
		@fin.prev = nil
	elsif 
		helper = @fin
		@fin = element
		@fin.prev = helper
		helper.next = @fin
		@fin.next = nil
	end
end

#many_insertions_in_beggining(elements) ⇒ Object

  • elements - Vector de elementos a insertar en la lista



136
137
138
139
140
141
142
# File 'lib/dieta/lista.rb', line 136

def many_insertions_in_beggining (elements)
	i=0
	while i <= (elements.length-1) do
		self.insert_beggining(elements[i])
		i += 1
	end
end

#many_insertions_in_end(elements) ⇒ Object

  • elements - Vector de elementos a insertar en la lista



149
150
151
152
153
154
155
# File 'lib/dieta/lista.rb', line 149

def many_insertions_in_end (elements)
	i=0
	while i <= (elements.length-1) do
		self.insert_end(elements[i])
		i += 1
	end
end