Class: Lista::MD_list

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeMD_list

Inicializa la lista



20
21
22
23
24
25
# File 'lib/dieta/lista.rb', line 20

def initialize()

	@head = nil
	@tail = nil

end

Instance Attribute Details

#headObject

Variable que almacena la nodo cabeza (primero) de la lista



15
16
17
# File 'lib/dieta/lista.rb', line 15

def head
  @head
end

#tailObject

Variable que almacena la nodo cola (final) de la lista



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

def tail
  @tail
end

Instance Method Details

#eachObject

Itera en la lista



75
76
77
78
79
80
81
# File 'lib/dieta/lista.rb', line 75

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

#extract_endObject

Extrae el Ășltimo elemento de la lista



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/dieta/lista.rb', line 58

def extract_end
  nodo = @tail

  if nodo != nil
    if nodo.prev != nil
      @tail = nodo.prev
      @tail.next = nil
    else
      @head = nil
      @tail = nil
    end
  end

  nodo
end

#extract_firstObject

Extrae el primer nodo



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/dieta/lista.rb', line 28

def extract_first

	nodo = @head

	if nodo != nil
		if nodo.next != nil
			@head = nodo.next
		else
			@head = nil
			@tail = nil
		end
	end

	nodo

end

#insert(node) ⇒ Object

Inserta un nodo

Parameters:

  • node

    el nodo que quieras insertar



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

def insert(node)
   if @head == nil
     @head = node
   elsif
     node.prev = @tail
     @tail.next = node
   end
   	@tail = node
end