Class: Lista

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/menu/codigo_lista.rb

Overview

  • Clase Lista

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLista

  • Construyendo el Objeto Lista de tipo “Clase”.



12
13
14
15
# File 'lib/menu/codigo_lista.rb', line 12

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

Instance Attribute Details

#finalObject (readonly)

  • Atributos



9
10
11
# File 'lib/menu/codigo_lista.rb', line 9

def final
  @final
end

#inicioObject (readonly)

  • Atributos



9
10
11
# File 'lib/menu/codigo_lista.rb', line 9

def inicio
  @inicio
end

Instance Method Details

#eachObject

  • Creando el método each para ejecutar pruebas del módulo Enumerable.



18
19
20
21
22
23
24
# File 'lib/menu/codigo_lista.rb', line 18

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

#emptyObject

  • Creando el método empty para ver si la Lista es vacía o no.



27
28
29
30
31
32
33
# File 'lib/menu/codigo_lista.rb', line 27

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

#extractfinalObject

  • Creando el método extractfinal para extraer elementos en la Lista desde el final.



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

def extractfinal
    if (empty == true)
        return false
    else
        valor = @final.value
        @final = @final.prev
        
        if (@final == nil)
            @inicio = nil
        else
            @final.next = nil
        end
        return valor
    end
end

#extractinicioObject

  • Creando el método extractinicio para extraer elementos en la Lista desde el inicio.



71
72
73
74
75
76
77
78
79
80
# File 'lib/menu/codigo_lista.rb', line 71

def extractinicio
    if(empty == true)
        return false
    else
        aux = @inicio
        @inicio = @inicio.next
        aux.next = nil
        return aux.value
    end
end

#insertfinal(elemento) ⇒ Object

  • Creando el método insertfinal para insertar elementos en la Lista desde el final.

  • El elemento a insertar se pasa por parámetro a la función.



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/menu/codigo_lista.rb', line 54

def insertfinal (elemento)
    nodo = Nodo.new(elemento, nil, nil)
    
    if (empty == true)
        @inicio = nodo
        @final = nodo
    else
        aux = @final
        @final = nodo
        @final.prev = aux
        aux.next = @final
        @final.next = nil
    end
    return true
end

#insertinicio(elemento) ⇒ Object

  • Creando el método insertinicio para insertar elementos en la Lista desde el inicio.

  • El elemento a insertar se pasa por parámetro a la función.



37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/menu/codigo_lista.rb', line 37

def insertinicio (elemento)
    nodo = Nodo.new(elemento, nil, nil)

    if(empty == true)
        @inicio = nodo
        @final = nodo
    else
        aux = @inicio
        @inicio = nodo
        @inicio.next = aux
        aux.prev = @inicio
    end
    return true
end