Class: Bibliografia::Lista_enlazada
- Inherits:
-
Object
- Object
- Bibliografia::Lista_enlazada
- Includes:
- Enumerable
- Defined in:
- lib/bibliografia/lista_enlazada.rb
Overview
Clase Lista enlazada por ambos lados
Instance Attribute Summary collapse
-
#final ⇒ Object
readonly
Getter + Setter.
-
#principio ⇒ Object
readonly
Getter + Setter.
Instance Method Summary collapse
-
#each ⇒ Object
Para hacer la clase enumerable.
-
#extraer_lista_final ⇒ Object
Extraer nodo de la lista por el final.
-
#extraer_lista_principio ⇒ Object
Extraer nodo de la lista por el principio.
-
#initialize ⇒ Lista_enlazada
constructor
Constructor.
-
#insertar_lista_final(referencia) ⇒ Object
Insertar nodo en la lista por el final.
-
#insertar_lista_principio(referencia) ⇒ Object
Insertar nodo en la lista por el principio.
Constructor Details
#initialize ⇒ Lista_enlazada
Constructor
20 21 22 23 |
# File 'lib/bibliografia/lista_enlazada.rb', line 20 def initialize @principio = nil @final = nil end |
Instance Attribute Details
#final ⇒ Object (readonly)
Getter + Setter
17 18 19 |
# File 'lib/bibliografia/lista_enlazada.rb', line 17 def final @final end |
#principio ⇒ Object (readonly)
Getter + Setter
17 18 19 |
# File 'lib/bibliografia/lista_enlazada.rb', line 17 def principio @principio end |
Instance Method Details
#each ⇒ Object
Para hacer la clase enumerable
79 80 81 82 83 84 85 |
# File 'lib/bibliografia/lista_enlazada.rb', line 79 def each nodo = @principio while (nodo != nil) yield nodo.referencia nodo = nodo.siguiente end end |
#extraer_lista_final ⇒ Object
Extraer nodo de la lista por el final
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/bibliografia/lista_enlazada.rb', line 67 def extraer_lista_final ref = @final @final = ref.anterior if @final != nil @final.siguiente = nil else @principio = @final end ref end |
#extraer_lista_principio ⇒ Object
Extraer nodo de la lista por el principio
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/bibliografia/lista_enlazada.rb', line 43 def extraer_lista_principio ref = @principio @principio = ref.siguiente if @principio != nil @principio.anterior = nil else @final = @principio end ref end |
#insertar_lista_final(referencia) ⇒ Object
Insertar nodo en la lista por el final
55 56 57 58 59 60 61 62 63 64 |
# File 'lib/bibliografia/lista_enlazada.rb', line 55 def insertar_lista_final(referencia) if @final != nil @final = Nodo.new(referencia, nil, @final) n = @final.anterior n.siguiente = @final else @principio = Nodo.new(referencia, nil, nil) @final = @principio end end |
#insertar_lista_principio(referencia) ⇒ Object
Insertar nodo en la lista por el principio
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/bibliografia/lista_enlazada.rb', line 26 def insertar_lista_principio(referencia) if @principio != nil && @principio.siguiente != nil n = @principio @principio = Nodo.new(referencia, n, nil) n.anterior = @principio elsif @principio != nil n = @principio @principio = Nodo.new(referencia, n, nil) n.anterior = @principio @final = n else @principio = Nodo.new(referencia, nil, nil) @final = @principio end end |