Class: ListaDobleEnlazada
- Inherits:
-
Object
- Object
- ListaDobleEnlazada
- Includes:
- Enumerable
- Defined in:
- lib/gema/ListaDobleEnlazada.rb
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
-
#[](index) ⇒ Object
Retorna el valor situado en la posición <index> del objeto tipo ListaDobleEnlazada.
-
#each ⇒ Object
Metodo de ‘Enumerable’ implementado para que sea capaz de trabajar con objetos de tipo LsitaDobleEnlazada.
-
#extract_head ⇒ Object
Retorna la cabeza de la lista del objeto ListaDobleEnlazada y la elimina de esta.
-
#extract_tail ⇒ Object
Retorna la cola de la lista del objeto ListaDobleEnlazada y la elimina de esta.
-
#extracted(nodo) ⇒ Object
Placeholder de metodo-evento para ser sobreescrito en clases hijas Este metodo se llama cada vez que un elemento es extraido con exito param [Object] nodo Elemento extraido.
-
#initialize ⇒ ListaDobleEnlazada
constructor
A new instance of ListaDobleEnlazada.
-
#insert(nodo) ⇒ Object
Inserta un elemento en la lista del objeto listaDobleEnlazada.
-
#inserted(nodo) ⇒ Object
PlaceHolder de metodo-evento para ser sobreescrito en clases hijas Este metodo se llama cada vez que un elemento es insertado con exito.
-
#insertList(*nodos) ⇒ Object
Metodo usado para insertar una lista de elementos en el objeto listaDobleEnlazada.
- #to_s ⇒ Object
Constructor Details
#initialize ⇒ ListaDobleEnlazada
Returns a new instance of ListaDobleEnlazada.
8 9 10 11 12 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 8 def initialize() @size = 0 @head = nil @tail = nil end |
Instance Attribute Details
#head ⇒ Object (readonly)
Returns the value of attribute head.
6 7 8 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 6 def head @head end |
#size ⇒ Object (readonly)
Returns the value of attribute size.
6 7 8 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 6 def size @size end |
#tail ⇒ Object (readonly)
Returns the value of attribute tail.
6 7 8 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 6 def tail @tail end |
Instance Method Details
#[](index) ⇒ Object
Retorna el valor situado en la posición <index> del objeto tipo ListaDobleEnlazada
92 93 94 95 96 97 98 99 100 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 92 def [](index) result = nil count = 0 return self.each_with_index do |value,index_r| if(index_r == index) then return value end end end |
#each ⇒ Object
Metodo de ‘Enumerable’ implementado para que sea capaz de trabajar con objetos de tipo LsitaDobleEnlazada
81 82 83 84 85 86 87 88 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 81 def each nodo = @head loop do yield nodo.value nodo = nodo.next break if(nodo == nil) end end |
#extract_head ⇒ Object
Retorna la cabeza de la lista del objeto ListaDobleEnlazada y la elimina de esta.
58 59 60 61 62 63 64 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 58 def extract_head() nodo = @head @head = @head.next @head.prev = nil extracted(nodo) return nodo end |
#extract_tail ⇒ Object
Retorna la cola de la lista del objeto ListaDobleEnlazada y la elimina de esta.
49 50 51 52 53 54 55 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 49 def extract_tail() nodo = @tail @tail = @tail.prev @tail.next = nil extracted(nodo) return nodo end |
#extracted(nodo) ⇒ Object
Placeholder de metodo-evento para ser sobreescrito en clases hijas Este metodo se llama cada vez que un elemento es extraido con exito param [Object] nodo Elemento extraido
69 70 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 69 def extracted(nodo) end |
#insert(nodo) ⇒ Object
Inserta un elemento en la lista del objeto listaDobleEnlazada
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 24 def insert(nodo) @size = @size + 1 if !(nodo.instance_of? Node) then nodo = Node.new(nodo,nil,nil) end if (@head == nil) then @head = nodo end if(@tail == nil) then @tail = nodo else @tail.next = nodo nodo.prev = @tail @tail = nodo end inserted(nodo) end |
#inserted(nodo) ⇒ Object
PlaceHolder de metodo-evento para ser sobreescrito en clases hijas Este metodo se llama cada vez que un elemento es insertado con exito
45 46 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 45 def inserted(nodo) end |
#insertList(*nodos) ⇒ Object
Metodo usado para insertar una lista de elementos en el objeto listaDobleEnlazada
16 17 18 19 20 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 16 def insertList(*nodos) nodos.each do |nodo| self.insert(nodo) end end |
#to_s ⇒ Object
72 73 74 75 76 77 |
# File 'lib/gema/ListaDobleEnlazada.rb', line 72 def to_s() result = "" self.each{|value| result += "-> " + value.to_s() + " <" } result += '-' return result end |