Class: Lista
Overview
Clase que representa una lista doblemente enlazada
Instance Attribute Summary collapse
-
#final ⇒ Object
readonly
Atributos.
-
#inicio ⇒ Object
readonly
Atributos.
Instance Method Summary collapse
-
#each ⇒ Object
Método each para que la clase sea enumerable.
-
#empty ⇒ Object
Método que compurba si la lista está vacía.
-
#extract_final ⇒ Object
Método que extrae un menú por el final.
-
#extract_inicio ⇒ Object
Método que extrae un menú por el inicio.
-
#initialize ⇒ Lista
constructor
Meodo initialize para la llamada del new.
-
#insert_final(valor) ⇒ Object
Método que inserta un menú por el final.
-
#insert_inicio(valor) ⇒ Object
Método que inserta un menú por el inicio.
Constructor Details
#initialize ⇒ Lista
Meodo initialize para la llamada del new
21 22 23 24 |
# File 'lib/menu/codigo_lista.rb', line 21 def initialize() @inicio = nil @final = nil end |
Instance Attribute Details
#final ⇒ Object (readonly)
Atributos
9 10 11 |
# File 'lib/menu/codigo_lista.rb', line 9 def final @final end |
#inicio ⇒ Object (readonly)
Atributos
9 10 11 |
# File 'lib/menu/codigo_lista.rb', line 9 def inicio @inicio end |
Instance Method Details
#each ⇒ Object
Método each para que la clase sea enumerable
12 13 14 15 16 17 18 |
# File 'lib/menu/codigo_lista.rb', line 12 def each nodo = @inicio while (nodo != nil) yield nodo.value nodo = nodo.next end end |
#empty ⇒ Object
Método que compurba si la lista está vacía
27 28 29 30 31 32 33 34 35 |
# File 'lib/menu/codigo_lista.rb', line 27 def empty() if (@inicio == nil) vacio = true else vacio = false end vacio end |
#extract_final ⇒ Object
Método que extrae un menú por el final
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/menu/codigo_lista.rb', line 88 def extract_final if(empty) valor = false else valor = @final.value if (@final.prev == nil) @inicio = nil @final = nil else @final = @final.prev @final.next = nil end end valor end |
#extract_inicio ⇒ Object
Método que extrae un menú por el inicio
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/menu/codigo_lista.rb', line 54 def extract_inicio if(empty) valor = false else valor = @inicio.value if (@inicio.next == nil) @inicio = nil @final = nil else @inicio = @inicio.next @inicio.prev = nil end end valor end |
#insert_final(valor) ⇒ Object
Método que inserta un menú por el final
72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/menu/codigo_lista.rb', line 72 def insert_final (valor) aux_nodo = Nodo.new(valor, nil, nil) if(empty) @final = aux_nodo @inicio = aux_nodo else aux_nodo.prev = @final @final.next = aux_nodo @final = aux_nodo end true end |
#insert_inicio(valor) ⇒ Object
Método que inserta un menú por el inicio
38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/menu/codigo_lista.rb', line 38 def insert_inicio (valor) aux_nodo = Nodo.new(valor, nil, nil) if(empty) @final = aux_nodo @inicio = aux_nodo else aux_nodo.next = @inicio @inicio.prev = aux_nodo @inicio = aux_nodo end true end |