// add a new element to the begining list
 public void addAtStart(ListElement <T> listElement)
 {
     listElement.Next = Head;
     Head             = listElement;
 }
 abstract public bool exist(int matricule, ListElement <T> listElement);
 abstract public void replace(int matricule, ListElement <T> listElement);
 // Constructor
 public IList()
 {
     Head = null;
 }