class List_double
Clase Lista_double que crea una lista doblemente enlazada enlazada
Attributes
final[RW]
final con el apuntador del ultimo elemento de la lista
principio[RW]
principio con el apuntador del inicio de la lista
Public Class Methods
new()
click to toggle source
Initialize que pone los apuntadores del inicio y del fin a nulo indicando asi que la lista esta vacia
# File lib/menu/list_double.rb, line 14 def initialize @principio = nil @final = nil end
Public Instance Methods
each() { |value| ... }
click to toggle source
Metodo Each que es necesario para que la lista doble sea enumerable
# 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()
click to toggle source
Metodo extraerf que sirve para extraer un nodo al final
# 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()
click to toggle source
Metodo extraerp que sirve para extraer un nodo al principio
# 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)
click to toggle source
Metodo insertarf que sirve para insertar un nodo al final
# 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)
click to toggle source
Metodo insertarp que sirve para insertar un nodo al principio
# 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