Class: List::List

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/practica8/list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeList

Returns a new instance of List



11
12
13
14
# File 'lib/practica8/list.rb', line 11

def initialize()
    @inicio= nil
    @final= nil
end

Instance Attribute Details

#finalObject (readonly)

Returns the value of attribute final



7
8
9
# File 'lib/practica8/list.rb', line 7

def final
  @final
end

#inicioObject (readonly)

Returns the value of attribute inicio



7
8
9
# File 'lib/practica8/list.rb', line 7

def inicio
  @inicio
end

Instance Method Details

#eachObject



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/practica8/list.rb', line 16

def each
    aux = @inicio
    if (@inicio == nil)
        yield nil
    elsif (@inicio == @fin)
        yield @inicio.value
    else
        while (aux != nil)
            yield aux.value
            aux = aux.next
        end
    end
end

#extrae_finalObject



30
31
32
33
34
35
36
37
38
# File 'lib/practica8/list.rb', line 30

def extrae_final()
    if (@final != nil)
        aux = @final.value
        @final = @final.prev
        return aux
    else
        return nil
    end
end

#extrae_inicioObject



40
41
42
43
44
45
46
47
48
# File 'lib/practica8/list.rb', line 40

def extrae_inicio()
    if (@inicio != nil)
        aux = @inicio.value
        @inicio = @inicio.next
        return aux
    else
        return nil
    end
end

#inserta_final(valor) ⇒ Object



50
51
52
53
54
55
56
57
58
59
60
# File 'lib/practica8/list.rb', line 50

def inserta_final(valor)
    nodo = Node.new(nil,valor,nil)
    if(@inicio == nil)
        @inicio= nodo
        @final=nodo
    else
        nodo.prev = @final
        @final.next = nodo
        @final= nodo
    end
end

#inserta_inicio(valor) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
# File 'lib/practica8/list.rb', line 62

def inserta_inicio(valor)
    nodo = Node.new(nil,valor,nil)
    if(@inicio == nil)
        @inicio= nodo
        @final=nodo
    else
        nodo.next = @inicio
        @inicio.prev = nodo
        @inicio= nodo
    end
end

#inserta_muchos_final(valores) ⇒ Object



74
75
76
77
78
# File 'lib/practica8/list.rb', line 74

def inserta_muchos_final(valores)
    valores.each do |elemento|
        inserta_final(elemento)
    end
end

#inserta_muchos_inicio(valores) ⇒ Object



80
81
82
83
84
# File 'lib/practica8/list.rb', line 80

def inserta_muchos_inicio(valores)
    valores.each do |elemento|
        inserta_inicio(elemento)
    end
end

#vacioObject



86
87
88
89
90
91
92
# File 'lib/practica8/list.rb', line 86

def vacio()
    if(@inicio == nil)
        return true
    else
        return false
    end
end