Class: Lista

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

Overview

Clase que representa una lista enlazada

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLista

Constructor de la clase lista



17
18
19
20
# File 'lib/menus/lista.rb', line 17

def initialize()
    @beginning = nil;
    @end = nil;
end

Instance Attribute Details

#beginningObject (readonly)

Returns the value of attribute beginning.



4
5
6
# File 'lib/menus/lista.rb', line 4

def beginning
  @beginning
end

#endObject (readonly)

Returns the value of attribute end.



4
5
6
# File 'lib/menus/lista.rb', line 4

def end
  @end
end

Instance Method Details

#eachObject



8
9
10
11
12
13
14
# File 'lib/menus/lista.rb', line 8

def each()
    actual = @beginning
    while actual != nil
        yield actual.value
        actual = actual.p_next
    end
end

#pop_frontObject

Extraer al inicio



38
39
40
41
42
43
# File 'lib/menus/lista.rb', line 38

def pop_front()
    aux = @beginning;
    @beginning = @beginning.p_next;
    @beginning.p_prev = nil
    return aux.value;
end

#push_front(value) ⇒ Object

Insertar al inicio



23
24
25
26
27
# File 'lib/menus/lista.rb', line 23

def push_front(value);
    aux = Node.new(value, @beginning, @nil);
    @end = @beginning;
    @beginning = aux;
end

#push_set(set) ⇒ Object

Insertar al inicio un set de elementos



31
32
33
34
35
# File 'lib/menus/lista.rb', line 31

def push_set(set)
    set.each do |i|
        push_front(i)
    end
end

#to_sObject



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

def to_s()
    aux = @beginning;
    str = "";
    while (aux != nil)
        str << "#{aux.value}\n\n"
        aux = aux.p_next;
    end
    return str;
end