si tu pars sur une idée de récursivité, inverse simplement l'ordre dans lequel les choses se font :D:
Commence par afficher l'élément courent, puis, si tu as un élément suivant, affiche le, ou, étant donné que ta liste est inversée par rapport à la liste lue dans le fichier, si tu veux la récupérer dans l'ordre, cela donnerait: si il y a un élément suivant, provoquons en l'affichage puis, quoi qu'il arrive, provoquons l'affichage de l'élément courent ;)
Cela donne donc, pour la première solution:
et pour la deuxième (celle qui permet d'obtenir l'affichage dans l'ordre)Code:
1
2
3
4
5
6
7
8 void Departmentlist::afficherDepartment(NodePointer currPointer){ cout<<" Name : " << currPointer->departmentname; if (currPointer->link == NULL) { afficherDepartment(currPointer->link); } }
Mais, ceci dit, l'optique récursive n'est pas forcément la meilleure que l'on puisse avoir dans ce cas, et une boucle pourrait très bien faire l'affaire, sous la forme deCode:
1
2
3
4
5
6
7
8 void Departmentlist::afficherDepartment(NodePointer currPointer){ if (currPointer->link == NULL) { afficherDepartment(currPointer->link); } cout<<" Name : " << currPointer->departmentname; }
A ceci près que l'affichage sera inversé car... ta logique de lecture le fait ainsi ;)... Ce qui nous ramène à réponse précédente ;)Code:
1
2
3
4
5
6
7
8
9 void Departementlist::afficherDepartements() { NodePointer temp = head; while(temp) { cout<<" Name : " << temp->departmentname; temp = temp->link; } }