Class: List
Instance Attribute Summary collapse
-
#head ⇒ Object
readonly
Returns the value of attribute head.
-
#size ⇒ Object
readonly
Returns the value of attribute size.
-
#tail ⇒ Object
readonly
Returns the value of attribute tail.
Instance Method Summary collapse
-
#back ⇒ Object
Método que retorna el último elemento de la lista.
-
#each ⇒ Object
Método que recorre la lista de principio a fin.
-
#front ⇒ Object
Método que retorna el primer elemento de la lista.
-
#get_next ⇒ Object
Método que retorna el siguiente elemento del primer nodo.
-
#get_prev ⇒ Object
Método que retorna el anterior del primer nodo.
-
#initialize ⇒ List
constructor
A new instance of List.
-
#pop_back ⇒ Object
Método que elimina el último elemento de la lista.
-
#pop_front ⇒ Object
Método que elimina el primer elemento de la lista.
-
#push_back(value) ⇒ Object
Método que inserta por detrás un elemento en la lista.
-
#push_front(value) ⇒ Object
Método que inserta por delante un elemento en la lista.
Constructor Details
#initialize ⇒ List
Returns a new instance of List.
6 7 8 9 10 |
# File 'lib/prct7/list.rb', line 6 def initialize @size = 0 @head = nil @tail = nil end |
Instance Attribute Details
#head ⇒ Object (readonly)
Returns the value of attribute head.
5 6 7 |
# File 'lib/prct7/list.rb', line 5 def head @head end |
#size ⇒ Object (readonly)
Returns the value of attribute size.
5 6 7 |
# File 'lib/prct7/list.rb', line 5 def size @size end |
#tail ⇒ Object (readonly)
Returns the value of attribute tail.
5 6 7 |
# File 'lib/prct7/list.rb', line 5 def tail @tail end |
Instance Method Details
#back ⇒ Object
Método que retorna el último elemento de la lista
33 34 35 |
# File 'lib/prct7/list.rb', line 33 def back @tail.value end |
#each ⇒ Object
Método que recorre la lista de principio a fin
12 13 14 15 16 17 18 |
# File 'lib/prct7/list.rb', line 12 def each i = @head while i != nil yield i.value i = i.next end end |
#front ⇒ Object
Método que retorna el primer elemento de la lista
49 50 51 |
# File 'lib/prct7/list.rb', line 49 def front @head.value end |
#get_next ⇒ Object
Método que retorna el siguiente elemento del primer nodo
67 68 69 70 71 72 73 |
# File 'lib/prct7/list.rb', line 67 def get_next if(@head.next == nil) nil else @head.next.value end end |
#get_prev ⇒ Object
Método que retorna el anterior del primer nodo
75 76 77 |
# File 'lib/prct7/list.rb', line 75 def get_prev nil end |
#pop_back ⇒ Object
Método que elimina el último elemento de la lista
53 54 55 56 57 58 |
# File 'lib/prct7/list.rb', line 53 def pop_back aux = @tail.value @tail = @tail.prev @size -= 1 aux end |
#pop_front ⇒ Object
Método que elimina el primer elemento de la lista
60 61 62 63 64 65 |
# File 'lib/prct7/list.rb', line 60 def pop_front aux = @head.value @head = @head.next @size -= 1 aux end |
#push_back(value) ⇒ Object
Método que inserta por detrás un elemento en la lista
20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/prct7/list.rb', line 20 def push_back(value) node = Node.new(value,nil,nil) if (@size == 0) @tail = @head = node else @tail.next = node node.prev = @tail @tail = node end @size += 1 end |
#push_front(value) ⇒ Object
Método que inserta por delante un elemento en la lista
37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/prct7/list.rb', line 37 def push_front(value) node = Node.new(value,nil,nil) if (@size == 0) @tail = @head = node else node.next = @head @head = node end @size += 1 end |