Sha256: 2f67635429990c1c21c75d94bcce741edab9ee88775c673d20017d032cfbe36b
Contents?: true
Size: 1.37 KB
Versions: 1
Compression:
Stored size: 1.37 KB
Contents
require "dieta/dieta_m" module Lista # @attr [Object] value Objeto contenido en el nodo # @attr [Node] next Nodo siguiente # @attr [Node] prev Nodo previo Node = Struct.new(:value, :next, :prev) class MD_list include Enumerable # Variable que almacena la nodo cabeza (primero) de la lista attr_accessor :head # Variable que almacena la nodo cola (final) de la lista attr_accessor :tail # Inicializa la lista def initialize() @head = nil @tail = nil end # Extrae el primer nodo def extract_first nodo = @head if nodo != nil if nodo.next != nil @head = nodo.next else @head = nil @tail = nil end end nodo end # Inserta un nodo # @param node el nodo que quieras insertar def insert(node) if @head == nil @head = node elsif node.prev = @tail @tail.next = node end @tail = node end # Extrae el Ășltimo elemento de la lista def extract_end nodo = @tail if nodo != nil if nodo.prev != nil @tail = nodo.prev @tail.next = nil else @head = nil @tail = nil end end nodo end # Itera en la lista def each i = @head; while i != nil yield i.value i = i.next end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dieta_alu0100618426-0.1.0 | lib/dieta/lista.rb |