Class: LinkedList
- Inherits:
-
Object
- Object
- LinkedList
- Includes:
- Enumerable
- Defined in:
- lib/practica7/practica7.rb
Overview
esta clase representa una lista doblemente enlazada
Instance Attribute Summary collapse
-
#head ⇒ Object
readonly
se permite leer desde fuera el valor de head y tail.
-
#tail ⇒ Object
readonly
Returns the value of attribute tail.
Instance Method Summary collapse
-
#add(value) ⇒ Object
añadimos un nodo cono un valor a la lista.
-
#each ⇒ Object
definimos el metodo de Enumerable que va iterando sobre los valores de los nodo+.
-
#initialize ⇒ LinkedList
constructor
se crea una lista vacía.
-
#pop ⇒ Object
saca el primer nodo de la lista.
-
#size ⇒ Object
procedimiento para calcular el numero de nodos de la lista.
Constructor Details
#initialize ⇒ LinkedList
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
#head ⇒ Object (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 |
#tail ⇒ Object (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 |
#each ⇒ Object
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 |
#pop ⇒ Object
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 |
#size ⇒ Object
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 |