Class: List_double
- Inherits:
-
Object
- Object
- List_double
- Includes:
- Enumerable
- Defined in:
- lib/menu/list_double.rb
Overview
Clase Lista_double que crea una lista doblemente enlazada enlazada
Instance Attribute Summary collapse
-
#final ⇒ Object
final con el apuntador del ultimo elemento de la lista.
-
#principio ⇒ Object
principio con el apuntador del inicio de la lista.
Instance Method Summary collapse
-
#each ⇒ Object
Metodo Each que es necesario para que la lista doble sea enumerable.
-
#extraerf ⇒ Object
Metodo extraerf que sirve para extraer un nodo al final.
-
#extraerp ⇒ Object
Metodo extraerp que sirve para extraer un nodo al principio.
-
#initialize ⇒ List_double
constructor
Initialize que pone los apuntadores del inicio y del fin a nulo indicando asi que la lista esta vacia.
-
#insertarf(nodo) ⇒ Object
Metodo insertarf que sirve para insertar un nodo al final.
-
#insertarp(nodo) ⇒ Object
Metodo insertarp que sirve para insertar un nodo al principio.
Constructor Details
#initialize ⇒ List_double
Initialize que pone los apuntadores del inicio y del fin a nulo indicando asi que la lista esta vacia
14 15 16 17 |
# File 'lib/menu/list_double.rb', line 14 def initialize @principio = nil @final = nil end |
Instance Attribute Details
#final ⇒ Object
final con el apuntador del ultimo elemento de la lista
8 9 10 |
# File 'lib/menu/list_double.rb', line 8 def final @final end |
#principio ⇒ Object
principio con el apuntador del inicio de la lista
5 6 7 |
# File 'lib/menu/list_double.rb', line 5 def principio @principio end |
Instance Method Details
#each ⇒ Object
Metodo Each que es necesario para que la lista doble sea enumerable
20 21 22 23 24 25 26 |
# File 'lib/menu/list_double.rb', line 20 def each n = @principio while n!=nil do yield n.value n = n.next end end |
#extraerf ⇒ Object
Metodo extraerf que sirve para extraer un nodo al final
67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/menu/list_double.rb', line 67 def extraerf aux = @final @final = @final.prev if(@final == nil) then @principio = nil else @final.next = nil end return aux end |
#extraerp ⇒ Object
Metodo extraerp que sirve para extraer un nodo al principio
56 57 58 59 60 61 62 63 64 |
# File 'lib/menu/list_double.rb', line 56 def extraerp aux = @principio @principio = @principio.next if(@principio == nil) then @final = nil end return aux end |
#insertarf(nodo) ⇒ Object
Metodo insertarf que sirve para insertar un nodo al final
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/menu/list_double.rb', line 42 def insertarf(nodo) n = Node_double.new(nodo, nil, nil) n.prev = @final n.next = nil if(@final == nil) then @principio = n else @final.next = n end @final = n end |
#insertarp(nodo) ⇒ Object
Metodo insertarp que sirve para insertar un nodo al principio
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/menu/list_double.rb', line 29 def insertarp(nodo) n = Node_double.new(nodo, nil, nil) n.next = @principio n.prev = nil if(@final == nil) then @final = n else @principio.prev = n; end @principio = n end |