class Alimento::List

Attributes

head[R]
tail[R]

Public Class Methods

new(value) click to toggle source

@note Constructor de la clase @param value Contenido de un nodo

# File lib/alimento/list.rb, line 15
def initialize (value)
        @head = Node.new(value, nil, nil) 
        @tail = @head
end

Public Instance Methods

each() { |actual| ... } click to toggle source

@note Recorrer la lista

# File lib/alimento/list.rb, line 22
def each
        return nil unless block_given?
        actual = self.tail
        while actual
                yield actual
                actual = actual.next
        end
end
extract_head() click to toggle source

@note Extraer el elemento en la cabeza de la lista @return [Node] Nodo de la lista extraido

# File lib/alimento/list.rb, line 66
def extract_head
        actual_head = @head
        new_head = actual_head.prev
        actual_head.prev = nil
        new_head.next = nil
        return new_head
end
extract_tail() click to toggle source

@note Extraer elemento en la cabeza de la lista @return [Node] Nodo de la lista extraido

# File lib/alimento/list.rb, line 77
def extract_tail
        actual_tail = @tail
        new_tail = actual_tail.next
        actual_tail.next = nil
        new_tail.prev = nil
        return new_tail
end
insert_head(value) click to toggle source

@note Insertar elemento en la cabeza de la lista @param value Contenido del nodo a insertar

# File lib/alimento/list.rb, line 34
def insert_head(value)
        actual_head = @head
        new_head = Node.new(value, nil,actual_head)
        actual_head.next = new_head
        @head = new_head
end
insert_sundry(value_array) click to toggle source

@note Insertar varios elementos en la lista @param value_array Vector de elementos a insertar en la lista

# File lib/alimento/list.rb, line 54
def insert_sundry(value_array)
        i = 0
        while i < value_array.length do
                insert_head(value_array[i])
                i += 1
        end
end
insert_tail(value) click to toggle source

@note Insertar elemento por la cola de la lista @param value Contenido del nodo a insertar

# File lib/alimento/list.rb, line 44
def insert_tail(value)
        actual_tail = @tail
        new_tail = Node.new(value, actual_tail, nil)
        actual_tail.prev = new_tail
        @tail = new_tail
end