Sha256: 208cda21f6af2368cd7835825848c4468d96f6512d29c7d56d01e32deff7d863

Contents?: true

Size: 1.36 KB

Versions: 1

Compression:

Stored size: 1.36 KB

Contents

##
# Auteur:: Brabant Mano
# Version:: 0.1
# Date:: 09/04/2020
#
#Cette classe représente une pile
class Pile

  #@indice => La position dans la pile
  attr_reader :indice

  include Enumerable

  private_class_method :new

  ##
  #Ce constructeur permet de créer une nouvelle pile
  #param::
  # * max Le nombre maximum d'élément dans la pile ("infini" par defaut)
  def Pile.creer(max = 0)
    new(max)
  end

  #:nodoc:
  def initialize(max)

    @actions = Array.new()
    @max = max

  end
  #:doc:

  ##
  #Cette méthode permet de d'empiler un élément
  #param::
  # * element L'élément à empiler
  def empiler(element)

    if(@max > 0)
      if(@actions.length < @max)
        @actions.push(element)
      end
    else
      @actions.push(element)
    end
    return self

  end

  ##
  #Cette méthode permet de dépiler le dernier élément
  #return::
  # * L'élément dépilé
  # * raiseException Si la pile est vide
  def depiler

    if(self.empty?())
      raise("La pile est vide")
    else
      return @actions.pop()
    end

  end

  ##
  #Cette méthode permet de savoir si la pile est vide ou non
  #return::
  # * true Si la pile est vide
  # * false Sinon
  def empty?()
    return @actions.empty?()
  end

  ##
  #Cette méthode permet d'itérer sur tous les éléments de la pile
  def each

    @actions.each do |hyp|
       yield hyp
     end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
Hashiparmentier-0.4.0 lib/Hashiparmentier/Core/Pile.rb