Class: Lista

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/refbiblio_alu0100505078/lista.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLista

Returns a new instance of Lista.



6
7
8
9
10
11
# File 'lib/refbiblio_alu0100505078/lista.rb', line 6

def initialize()
    @cabeza=Node.new(nil,nil,nil)
    @cola=Node.new(nil,nil,nil)
    @n_elementos=0 
    
end

Instance Attribute Details

#cabezaObject (readonly)

Returns the value of attribute cabeza.



5
6
7
# File 'lib/refbiblio_alu0100505078/lista.rb', line 5

def cabeza
  @cabeza
end

#colaObject (readonly)

Returns the value of attribute cola.



5
6
7
# File 'lib/refbiblio_alu0100505078/lista.rb', line 5

def cola
  @cola
end

#n_elementosObject (readonly)

Returns the value of attribute n_elementos.



5
6
7
# File 'lib/refbiblio_alu0100505078/lista.rb', line 5

def n_elementos
  @n_elementos
end

Instance Method Details

#eachObject

MÉTODO EACH PARA USO DEL ENUMERABLE(SE USA EL AUTOR EN ESTE CASO)



13
14
15
16
17
18
19
20
21
# File 'lib/refbiblio_alu0100505078/lista.rb', line 13

def each()
    aux=@cola
   
   while aux.next !=nil do
      yield aux.value.autor
     # [email protected]
     aux=aux.next
    end
end

#empty?Boolean

Método que comprueba si la lista está vacía o no

Returns:

  • (Boolean)


56
57
58
59
60
61
62
# File 'lib/refbiblio_alu0100505078/lista.rb', line 56

def empty?
    if(@cabeza.value==nil)
        true
    else
        false
    end
end

#extraeObject

Método para extraer el primer elemento de la lista enlazada.



48
49
50
51
52
53
54
# File 'lib/refbiblio_alu0100505078/lista.rb', line 48

def extrae
    
    a_aux=@cola
    @cola=@cola.next
    @n_elementos=@n_elementos-1
    a_aux
end

#inserta(item) ⇒ Object

Método insertar por el comienzo de la lista enlazada



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/refbiblio_alu0100505078/lista.rb', line 23

def inserta(item)
   
    item.each do |n|
     nodo=Node.new(nil)
     nodo.value=n
        if @cabeza.value==nil
            @cabeza=nodo
            @cola=nodo
            
        else
            a_cabeza=@cola
            
            while a_cabeza.next!=nil do
                
                a_cabeza=a_cabeza.next
                
            end
            a_cabeza.next=nodo
            @cabeza=a_cabeza.next
            @cabeza.before=a_cabeza
        end
        @n_elementos=@n_elementos+1
   end
end

#mostrarObject

Método para mostrar el contenido de la lista desde el principio hasta el final.



64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/refbiblio_alu0100505078/lista.rb', line 64

def mostrar
    aux_cabeza=@cabeza
    aux_cola=@cola
    
    #print "\n de cola hacia adelante:\n "
    print aux_cola.value
    while aux_cola.next!=nil do
        print "\n ->"
        aux_cola=aux_cola.next
        print aux_cola.value
    end
     print "\n=========================================================\n"
end