#include "types.h"

class ArbreCL{
private: 
  CL racine;
  int cardinal;
public: 
  ArbreCL();
  CL* AdresseRacine();
  CL* AdresseFrerePuine(CL *elem);
  CL* AdressePere(CL *elem);
  CL* AdressePremierFils(CL *elem);
  CL* AdresseFilsSuivant(CL *pere,CL *elem);
  void InsererPremierFils(CL *pere,CL *elem);   /*insertion d'1 CL comme premier fils d'un pere*/
  /*Primitive non générique et spécifique au jeu implémenté pour cette classe : */
  void InsererPremierFils(CL *pere,int &coup);   /*idem avec un coup*/
  /*void InsererApres(CL *elem); insère un CL comme frere puiné de l'elem */
  void SupprimerPremierFils(CL *pere); /*supprime le premier fils d'un pere*/
   /*Primitive non générique et spécifique au jeu implémenté pour cette classe : */
  void AfficherFils(CL *pere); /*affiche une liste des fils d'un pere*/
  void ViderFils(CL *pere); /*massacre tous les fils d'un père*/
  void Fratricide(CL *elem); /*tue tous les freres et devient le premier fils de son pere*/  
  void ArbreCL::Elaguer(CL *elem);
  int Cardinal();/*renvoie le nombre de coups dans l'arbre*/ 

};




 

