class Prct07::Lista_doble

Attributes

head[RW]

cabeza = head ultelem = ultcola

lista1[RW]

cabeza = head ultelem = ultcola

ultcola[RW]

cabeza = head ultelem = ultcola

valor[RW]

cabeza = head ultelem = ultcola

Public Class Methods

new() click to toggle source
# File lib/prct07/lista_doble.rb, line 21
def initialize
    @head= nil
    @ultcola=nil
    #@lista_reverse = nil
end

Public Instance Methods

each() { |valor| ... } click to toggle source
# File lib/prct07/lista_doble.rb, line 55
def each()
    if(@head !=nil)
       @temp=@head
         while (@temp != nil) do
         yield @temp.valor
         @temp=@temp.siguiente 
         end
    end
end
pop_principio() click to toggle source
# File lib/prct07/lista_doble.rb, line 67
def pop_principio()
  if @head != nil
            @elimina = @head
            @head = @head.siguiente  
            #@head.anterior = nil
            @elimina.siguiente = nil
            @elimina.valor
            #puts "pop"
  else
            puts 'No habia nada en la lista enlazada'
            return nil
  end
end
push_principio(args) click to toggle source
# File lib/prct07/lista_doble.rb, line 81
def push_principio(args)
  if @head == nil 
         @temp=Nodo.new(args,nil,nil)
     @head=@temp
  else
      @temp=Nodo.new(args,nil,nil)
          @head.anterior=@temp
          @temp.siguiente = @head
      @head=@temp
          #@head.anterior = args
          #@head = args
          #args.anterior = nil
          #puts "push_p"
  end
end
reverse_lista() click to toggle source

def reverse_lista(lista)

  @listareves=Prct07::Lista_doble.new
return Proc.new{ |n| listareves.push_principio(n) }
reverse_lista

end

# File lib/prct07/lista_doble.rb, line 44
def reverse_lista
      @lista_reverse = Prct07::Lista_doble.new
      self.each_with_index do |n|
           @lista_reverse.push_principio(n)
           #puts"reverse"
          end
      return @lista_reverse
end