Salut,
coucou747, tu as parfaitement raison mais mefie toi des Stack overflow avec ta recursivite.
amani20081984: dans kel sens veux tu parcourir ton arbre? voici des choix:
1- Les noeuds niveau par niveau (per level)
2- un noeud suivi de ses noeuds-fils (post fix)
3- un noeud precede par ses noeuds-fils (pre fix)
4- un noeud enchevetre parmis la liste des noeuds fils (in - n -fix)
pour eviter la recursivite utilises une boucle et une queue (file d'attente). Je reutilises le code de coucou747:
#include <deque>
using namespace std;
typedef struct arbre{
struct arbre * suivants;
int nombre_branches;
....
}arbre, *parbre;
void parcourir(struct arbre * const a){
deque<parbre> file;
parbre b=a;
file.push_back(b);
while(!file.empty())
{
b = file.front();file.pop_front();
int i= (*b).nombre_branches;
while(--i>=0)file.push_back(suivants[i]);
... // utilise b ici...
}
}
J'espere avoir aide, salut
http://www.liveplayaz.com
je suis heureux de faire partie d'une grande famille ...!