Class: Lista

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

Overview

Clase Lista

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLista

Constructor



10
11
12
# File 'lib/gema/lista.rb', line 10

def initialize 
  @head =  nil           
end

Instance Attribute Details

#headObject (readonly)

La cabecera de la Lista



8
9
10
# File 'lib/gema/lista.rb', line 8

def head
  @head
end

Instance Method Details

#eachObject

Método necesario para que el módulo Enumerable se pueda utilizar(el módulo Enumerable define iteradores útiles que se implementan en base a un iterador each)



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

def each
  node=@head
  while node != nil
    yield node.value
    node=node.next
  end
end

#emptyObject

Método que te devuelve la cabecera de la Lista vacía



64
65
66
67
68
# File 'lib/gema/lista.rb', line 64

def empty 
       @head = nil
       return @head
    
end

#is_empty?Boolean

Método que comprueba si la Lista está vacía

Returns:

  • (Boolean)


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

def is_empty?
 
 if(@head==nil)
    return true
    else return false

end
end

#popObject

Método que saca un valor de la Lista



35
36
37
38
39
40
41
# File 'lib/gema/lista.rb', line 35

def pop 
  if(@head!=nil)
  other = @head
    @head = @head.next
    return other.value
    end
end

#push(valor) ⇒ Object

Método que inserta un valor o un array de valores en la Lista



22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/gema/lista.rb', line 22

def push (valor)
  if(valor.instance_of? Array )
    for i in valor
    @head = Node.new(i,@head)

    end
  else
    @head = Node.new(valor,@head)
  end
    @head.value

end

#to_sObject

Método que imprime la Lista



43
44
45
46
47
48
49
50
51
52
53
# File 'lib/gema/lista.rb', line 43

def to_s
        other = @head
         total=""
        while(other!=nil)
          total+= "#{other.value}\t"
          other = other.next
        end
         total += "\n"
         
       
end