Class: Lista
Overview
Clase Lista, crea una lista
Instance Attribute Summary collapse
-
#head ⇒ Object
attr_accessor :cabeza, :tail.
-
#tail ⇒ Object
attr_accessor :cabeza, :tail.
Instance Method Summary collapse
-
#each ⇒ Object
Para funcionar Enumerable con menús.
-
#extraer_final ⇒ Object
extraemos por el final.
-
#extraer_inicio ⇒ Object
eliminar el nodo y cambiar los valores al nodo anterior.
-
#initialize(cabeza, cola) ⇒ Lista
constructor
Lista.new(nil,nil).
-
#insertar(x) ⇒ Object
Insertamos un elemento en la lista.
-
#insertar_varios(nodos) ⇒ Object
Insertamos varios elementos en la lista.
-
#to_s ⇒ Object
Muestra.
Constructor Details
#initialize(cabeza, cola) ⇒ Lista
Lista.new(nil,nil)
16 17 18 19 20 21 |
# File 'lib/menu/lista.rb', line 16 def initialize(cabeza,cola) @head = cabeza @tail = cola end |
Instance Attribute Details
#head ⇒ Object
attr_accessor :cabeza, :tail
13 14 15 |
# File 'lib/menu/lista.rb', line 13 def head @head end |
#tail ⇒ Object
attr_accessor :cabeza, :tail
13 14 15 |
# File 'lib/menu/lista.rb', line 13 def tail @tail end |
Instance Method Details
#each ⇒ Object
Para funcionar Enumerable con menús
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/menu/lista.rb', line 68 def each while @head != @tail yield @head.value @head=@head.prev end if @head == @tail if @head == nil nil else yield @tail.value end end end |
#extraer_final ⇒ Object
extraemos por el final
58 59 60 |
# File 'lib/menu/lista.rb', line 58 def extraer_final() @head=head.prev end |
#extraer_inicio ⇒ Object
eliminar el nodo y cambiar los valores al nodo anterior
53 54 55 56 |
# File 'lib/menu/lista.rb', line 53 def extraer_inicio() @tail=tail.next end |
#insertar(x) ⇒ Object
Insertamos un elemento en la lista
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/menu/lista.rb', line 24 def insertar(x) nodo = Nodo.new(x, nil, nil) if @head == nil && @tail==nil nodo.next=@head nodo.prev=@tail @head=nodo @tail=nodo else nodo.prev=@head nodo.next=nil @head.next=nodo @head=nodo end end |
#insertar_varios(nodos) ⇒ Object
Insertamos varios elementos en la lista
41 42 43 44 45 46 47 48 49 |
# File 'lib/menu/lista.rb', line 41 def insertar_varios(nodos) nodos.each do |nodoo| insertar(nodoo) end end |
#to_s ⇒ Object
Muestra
63 64 65 |
# File 'lib/menu/lista.rb', line 63 def to_s @head.to_s end |