Dans le fichier list.hpp, créer la classe générique CList de signature suivante :
templateclass CList { private: CNode * m_Head; public: CList (); ~CList (); //ajout en tête de liste void push_front (const T & val); //affichage void Show () const; //recherche d'un élément dans la liste, renvoie le pointeur du maillon si l'élément est présent, nullptr sinon CNode * Find (const T & val) const; //ajout d'une valeur après un maillon de la liste void Add (const T & val, CNode *); //détache un maillon de la liste et le supprime void Delete (CNode *); };
Ecrivez le corps de toutes les fonctions de cette classe.
Tester votre classe avec le code suivant :
void ListeSimpleV2 ()
{
cout << "ListeSimpleV2 : \n\n";
CList AList;
// Le dernier element cree est toujours le premier de la liste
for (unsigned i (0); i < 5; )
{
AList.push_front (i++);
}
AList.Show ();
int i;
cin >>i;
CNode* ptr = AList.Find (i);
AList.Add (3*i, ptr);
AList.Show ();
cout << ((ptr != NULL)? " " : "non ") << "trouve" << endl;
}