Class: LinkedList

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

Overview

esta clase representa una lista doblemente enlazada

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeLinkedList

se crea una lista vacía



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

def initialize
	@head = @tail = nil
end

Instance Attribute Details

#headObject (readonly)

se permite leer desde fuera el valor de head y tail



12
13
14
# File 'lib/practica7/practica7.rb', line 12

def head
  @head
end

#tailObject (readonly)

Returns the value of attribute tail



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

def tail
  @tail
end

Instance Method Details

#add(value) ⇒ Object

añadimos un nodo cono un valor a la lista.



21
22
23
24
25
26
27
# File 'lib/practica7/practica7.rb', line 21

def add(value)
     node = Node.new(value)
     @head = node if @head.nil?
     @tail.next = node unless @tail.nil?
		 node.prev = @tail unless @tail.nil?
     @tail = node
end

#eachObject

definimos el metodo de Enumerable que va iterando sobre los valores de los nodo+



45
46
47
48
49
50
51
# File 'lib/practica7/practica7.rb', line 45

def each #:nodoc:
		aux=@head
		while aux!=nil do
			yield aux.value
			aux=aux.next
		end	
end

#popObject

saca el primer nodo de la lista



29
30
31
32
33
# File 'lib/practica7/practica7.rb', line 29

def pop 
  		aux=@head
  		@head=@head.next
  		aux
end

#sizeObject

procedimiento para calcular el numero de nodos de la lista



35
36
37
38
39
40
41
42
43
# File 'lib/practica7/practica7.rb', line 35

def size
  		tam =0
  		aux=@head
  		while aux!=nil do 
tam = tam + 1
aux=aux.next
  		end
  		tam
end