Class: Lista

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

Overview

Clase Lista, crea una lista

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(cabeza, cola) ⇒ Lista

Lista.new(nil,nil)



16
17
18
19
20
21
# File 'lib/menu/lista.rb', line 16

def initialize(cabeza,cola)
    @head = cabeza
    @tail = cola
    
   
end

Instance Attribute Details

#headObject

attr_accessor :cabeza, :tail



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

def head
  @head
end

#tailObject

attr_accessor :cabeza, :tail



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

def tail
  @tail
end

Instance Method Details

#eachObject

Para funcionar Enumerable con menús



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/menu/lista.rb', line 68

def each
    while @head != @tail
        yield @head.value
        @head=@head.prev
    end
    
   if @head == @tail
       if @head == nil 
        nil 
       else
        yield @tail.value
       end
       
   end
end

#extraer_finalObject

extraemos por el final



58
59
60
# File 'lib/menu/lista.rb', line 58

def extraer_final()
    @head=head.prev
end

#extraer_inicioObject

eliminar el nodo y cambiar los valores al nodo anterior



53
54
55
56
# File 'lib/menu/lista.rb', line 53

def extraer_inicio()
   @tail=tail.next
   
end

#insertar(x) ⇒ Object

Insertamos un elemento en la lista



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/menu/lista.rb', line 24

def insertar(x)
    nodo = Nodo.new(x, nil, nil)   
    if @head == nil && @tail==nil
        nodo.next=@head
        nodo.prev=@tail
        @head=nodo
        @tail=nodo
    else
        nodo.prev=@head
        nodo.next=nil
        @head.next=nodo
        @head=nodo
    end
    
end

#insertar_varios(nodos) ⇒ Object

Insertamos varios elementos en la lista



41
42
43
44
45
46
47
48
49
# File 'lib/menu/lista.rb', line 41

def insertar_varios(nodos)
    
    nodos.each do |nodoo|
        
    insertar(nodoo)
    
    end
 
end

#to_sObject

Muestra



63
64
65
# File 'lib/menu/lista.rb', line 63

def to_s
     @head.to_s 
end