Class: Lista
Overview
Clase Lista que representa una lista doblemente enlazada con un inicio y un fin.
Instance Attribute Summary collapse
-
#final ⇒ Object
readonly
Returns the value of attribute final.
-
#inicio ⇒ Object
readonly
Returns the value of attribute inicio.
Instance Method Summary collapse
-
#each ⇒ Object
Método que recorre la lista y devuelve un vector con los valores de esta, necesario para los métodos de Enumerable (sort,min,max).
-
#empty ⇒ Object
Método que comprueba si la lista está vacía.
-
#extract ⇒ Object
Método que extrae un valor de la lista (por el inicio).
-
#get_final ⇒ Object
Método que obtiene el inicio de la lista.
-
#get_inicio ⇒ Object
Método que obtiene el inicio de la lista.
-
#initialize ⇒ Lista
constructor
Constructor de la clase.
-
#insert(x) ⇒ Object
Método que inserta un valor en la lista (por el final).
- #to_s ⇒ Object
Constructor Details
#initialize ⇒ Lista
Constructor de la clase
33 34 35 36 |
# File 'lib/menu/list.rb', line 33 def initialize @inicio = nil @final = nil end |
Instance Attribute Details
#final ⇒ Object (readonly)
Returns the value of attribute final.
9 10 11 |
# File 'lib/menu/list.rb', line 9 def final @final end |
#inicio ⇒ Object (readonly)
Returns the value of attribute inicio.
9 10 11 |
# File 'lib/menu/list.rb', line 9 def inicio @inicio end |
Instance Method Details
#each ⇒ Object
Método que recorre la lista y devuelve un vector con los valores de esta, necesario para los métodos de Enumerable (sort,min,max)
12 13 14 15 16 17 18 |
# File 'lib/menu/list.rb', line 12 def each node = @inicio while(node!=nil) yield node.value node = node.next end end |
#empty ⇒ Object
Método que comprueba si la lista está vacía
49 50 51 52 53 54 55 |
# File 'lib/menu/list.rb', line 49 def empty if(@inicio == nil) true elsif false end end |
#extract ⇒ Object
Método que extrae un valor de la lista (por el inicio)
72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/menu/list.rb', line 72 def extract if(empty) nil elsif node = @inicio @inicio = node.next if(!empty) @inicio.prev = nil end node.next = nil node.value end end |
#get_final ⇒ Object
Método que obtiene el inicio de la lista
44 45 46 |
# File 'lib/menu/list.rb', line 44 def get_final @final end |
#get_inicio ⇒ Object
Método que obtiene el inicio de la lista
39 40 41 |
# File 'lib/menu/list.rb', line 39 def get_inicio @inicio end |
#insert(x) ⇒ Object
Método que inserta un valor en la lista (por el final)
58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/menu/list.rb', line 58 def insert(x) node = Nodo.new(x,nil,nil) if(empty) @inicio = node @final = node elsif @final.next = node node.prev = @final @final = node end true end |
#to_s ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/menu/list.rb', line 19 def to_s output = "" node = @inicio while(node!=nil) output << "#{node.value}" node = node.next end output end |