class liste
{
  private int elem;
  private liste sous_liste;

  liste ()
  {
    elem = 0;
    sous_liste = null;
  }

  liste (int e, liste s)
  {
    elem = e;
    sous_liste = s;
  }

  public boolean est_vide ()
  {
    return (sous_liste == null);
  }

  public int premier () throws Exception
  {
    if (est_vide ())
      throw new Exception ();

    return (elem);
  }

  public liste fin () throws Exception
  {
    if (est_vide ())
      throw new Exception ();

    return (sous_liste);
  }

  private String chaine ()
  {
    if (!est_vide())
      return (" " + elem + " " + sous_liste.chaine ());
    else
      return ("");    
  }

  public String toString ()
  {
    return ("(" + chaine () + ")");
  }
}
    

Retour