Class: Examenes::List

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/Examenes/Listas.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeList

Inicializa los tres atributos.



30
31
32
33
34
# File 'lib/Examenes/Listas.rb', line 30

def initialize
  @cabeza = nil
  @cola = nil
  @numeroNodos = 0
end

Instance Attribute Details

#cabezaObject (readonly)

Tres atributos, uno se situa al principio :cabeza, el otro al final :cola, y los numeros de nodo total



27
28
29
# File 'lib/Examenes/Listas.rb', line 27

def cabeza
  @cabeza
end

#colaObject (readonly)

Tres atributos, uno se situa al principio :cabeza, el otro al final :cola, y los numeros de nodo total



27
28
29
# File 'lib/Examenes/Listas.rb', line 27

def cola
  @cola
end

#numeroNodosObject (readonly)

Tres atributos, uno se situa al principio :cabeza, el otro al final :cola, y los numeros de nodo total



27
28
29
# File 'lib/Examenes/Listas.rb', line 27

def numeroNodos
  @numeroNodos
end

Instance Method Details

#eachObject



112
113
114
115
116
117
118
# File 'lib/Examenes/Listas.rb', line 112

def each
  nodo = @cabeza
  while nodo != nil do
    yield nodo.value
    nodo = nodo.next
  end
end

#obtenerValor(numero) ⇒ Object

Obtiene un valor determinado



99
100
101
102
103
104
105
106
107
108
109
# File 'lib/Examenes/Listas.rb', line 99

def obtenerValor(numero)
  valor = ""
  i = 0
  nodo = @cabeza
  while i < numero do
    i = i + 1
    valor = nodo.value
    nodo = nodo.next
  end
  return valor
end

#popObject

Elimina los elmentos de la Lista



53
54
55
56
57
58
59
60
61
# File 'lib/Examenes/Listas.rb', line 53

def pop
  if @numeroNodos == 1 then
    @cabeza = nil
    @cola = nil
  else
    @cabeza = @cabeza.next
  end
  @numeroNodos = @numeroNodos - 1
end

#push(*valor) ⇒ Object

Introduce los elementos a la Lista



37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/Examenes/Listas.rb', line 37

def push(*valor)
  for i in 0...valor.length
    nuevoNode = Node.new(valor[i], @nil, nil)
    if @numeroNodos == 0 then
      @cabeza = nuevoNode
      @cola = nuevoNode
    else
      @cabeza.previous = nuevoNode
      nuevoNode.next = @cabeza
      @cabeza = nuevoNode       
    end
    @numeroNodos = @numeroNodos + 1
  end
end

#sacarValorObject

Obtiene el valor correspondiente



64
65
66
67
68
69
70
71
72
73
74
# File 'lib/Examenes/Listas.rb', line 64

def sacarValor
  @valor = @cabeza.value
  if @numeroNodos == 1 then
    @cabeza = nil
    @cola = nil
  else
    @cabeza = @cabeza.next
  end
  @numeroNodos = @numeroNodos - 1
  return @valor
end

#verDesdeCabezaObject

Muestra la lista empezando desde la cabeza



77
78
79
80
81
82
83
84
85
# File 'lib/Examenes/Listas.rb', line 77

def verDesdeCabeza
  salida = ""
  nodo = @cabeza
  while nodo != nil do
    salida = salida + nodo.value.to_s + " "
    nodo = nodo.next
  end
  return salida
end

#verDesdeColaObject

Muestra la lista empezando por la cola



88
89
90
91
92
93
94
95
96
# File 'lib/Examenes/Listas.rb', line 88

def verDesdeCola
    salida = ""
  nodo = @cola
  while nodo != nil do
    salida = salida + nodo.value.to_s + " "
    nodo = nodo.previous
  end
  return salida
end