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

#initialize(cabeza, cola) ⇒ Lista

Returns a new instance of Lista.



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

def initialize(cabeza,cola)
    @cabeza = cabeza
	@cola = cola
end

Instance Attribute Details

#cabezaObject

Returns the value of attribute cabeza.



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

def cabeza
  @cabeza
end

#colaObject

Returns the value of attribute cola.



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

def cola
  @cola
end

#nodo_actualObject

Returns the value of attribute nodo_actual.



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

def nodo_actual
  @nodo_actual
end

Instance Method Details

#eachObject



51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/dieta/lista.rb', line 51

def each
    while @cabeza != @cola
        yield @cabeza.value
        @cabeza=@cabeza.prev
    end

    if @cabeza == @cola
       if @cabeza == nil
        nil
       else
        yield @cola.value
       end
    end
end

#extraer_inicioObject

eliminar el nodo y cambiar los valores al nodo anterior



39
40
41
# File 'lib/dieta/lista.rb', line 39

def extraer_inicio()
   @cola=@cola.next
end

#extrar_finalObject



43
44
45
# File 'lib/dieta/lista.rb', line 43

def extrar_final()
   @cabeza = @cabeza.prev
end

#insertar(x) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/dieta/lista.rb', line 14

def insertar(x)
    node = Nodo.new(x,nil,nil)

	if @cabeza==nil && @cola==nil
		node.prev = @cola
     node.next = @cabeza
		@nodo_actual = node
     @cabeza = node
		@cola = node
	else
		node.prev = @cabeza
		node.next = nil
		@nodo_actual = node
		@cabeza.next = node
		@cabeza = node
	end
end

#insertar_varios(nodos) ⇒ Object



32
33
34
35
36
# File 'lib/dieta/lista.rb', line 32

def insertar_varios(nodos)
    nodos.each do |nd|
    	insertar(nd)
    end
end

#to_sObject



47
48
49
# File 'lib/dieta/lista.rb', line 47

def to_s
     @cabeza.to_s 
end