Bonjour,
Après une quinzaine de jours à plancher sur le sujet en vain, je m'adresse aux plus bons en Algorithmiques d'entre nous.
Voici le problème :
J'ai un tableau $Tab contenant censé représenter un arbre (arbre non binaire, sinon ce serait trop simple), par exemple:
$Tab[1][1]=0 signifie que le 1er élément a pour père 0 ( ce qui signifie que c'est la racine )
$Tab[2][1]=1 signifie que l'élément du 2ème niveau a pour père 1 ( le 1er élément de la ligne d'au dessus )
$Tab[2][2]=1 signifie que le 2ème élément du 2ème niveau a pour père 1
$Tab[3][1]=2 signifie que le 1er élément du 3ème niveau a pour père 2 (2ème élément du niveau d'avant)
etc...
Le BUT : Créer un tableau $Tab2 à partir de $Tab mais respectant les "décalages" entre les feuilles/noeuds comme sur l'image ci-dessous (car je crois pas que je puisse l'expliquer simplement avec juste des mots )
http://img161.imageshack.us/img161/3349/tableau5qo.gif
Là c'est pour un petit arbre mais l'algorithme doit également marcher pour un grand arbre avec plein de noeuds etc.. en gros le principe c'est qu'un élément $Tab2[$i2][$j2] (conversion d'un élément $Tab[$i][$j] du tableau de base) est tel que $i=$i2 et $j2 = nombre de feuilles des voisins précédents (en partant de la gauche). Je pense qu'en voyant le graphe vous comprendrez ce que je veux, car mon but est d'afficher le graphe en php et qu'on puisse cliquer sur chaque noeud (ce qui renvoie vers un lien différent selon le noeud). Je vois pas comment faire autrement et cet algorithme me bloque vraiment... peut-être qu'un expert en algorithmique rôdant ici pourrait résoudre cela en quelques lignes de code php ? Si oui il a tout mon respect, mon estime et ma gratitude ; je remercie de même à l'avance les autres qui tenteront le challenge !
Merci d'avance, Doll777
(PS : si vous avez une bibliothèque qui permet d'afficher un arbre non-binaire de telle sorte qu'on puisse cliquer sur chaque noeud et y insérer des urls/texte que l'on veut dedans, je suis preneur mais jusqu'ici je n'ai que vu des scripts pour les arbres binaires pour le moment, et encore on ne peut pas cliquer sur les noeuds puisque ça rend une .GIF de l'ensemble de l'arbre)