Bonjour a tous,
Je vous explique mon problème. J'ai un projet à réaliser en Java et je dois construire un arbre général( pas binaire) et j'ai des soucis pour le faire. J'ai commencé et ça bug donc si vous pouvez m'aider
myboo45@hotmail.fr .
Je dois représenter f(h(c),g(X,h(Y)),a) en arbre.
Le projet ce trouve sur
http://www.univ-orleans.fr/lifo/Membres/couvreur/ens05-06/algo4/devoir.pdf
Je remercie d'avance ce qui pourront m'aider.
bon sinon est-ce que tu as le droit d'utiliser l'objet Node de l'api Java? si oui tu fait une classe extend de ça en modifiant les méthode d'ajout (add() et compagnie).
__________________________
rien ne sert de coder pour coder il suffit de coder à point. La fontaine (ah non c'est pas ça qu'il a dit?)
merci d'avoir répondu.
Justement on doit créer notre propre class Arbre , constitué d'un élément et d'un maillon sachant qu'un maillon est un arbre avec un maillon suivant.
a partir de f(h(c),g(X,h(Y)),a) on doit créer un arbre.
donc moi j'ai commencé par le mettre dans une chaine de caractère et a chaque fois que c'est une lettre( a,b, c ,..,z) je dis que la lettre c'est l'élément d'un arbre et que le maillon c'est le reste et il faut le faire sous forme récursive donc je bug la dessus!
merci d'avoir répondu.
Justement on doit créer notre propre class Arbre , constitué d'un élément et d'un maillon sachant qu'un maillon est un arbre avec un maillon suivant.
a partir de f(h(c),g(X,h(Y)),a) on doit créer un arbre.
donc moi j'ai commencé par le mettre dans une chaine de caractère et a chaque fois que c'est une lettre( a,b, c ,..,z) je dis que la lettre c'est l'élément d'un arbre et que le maillon c'est le reste et il faut le faire sous forme récursive donc je bug la dessus!
import java.util.ArrayList;
public class Node{
private Element elt;
private ArrayList enfants;
/**constructeur que tu appelle a la création en *externe à la création du premier élément.
*/
public Node(Element elt)
{
this.elt=elt;
this.enfants=new ArrayList();
}
public void add(String value)
{
//la tu fais ton traitement a l'aide de la méthode compareTo() de string pour savoir ou le mettre exactement dans ton arrayList
//ou final soit tu le rajoute dans ton arrayList en créent un nouvel Element ou soit tu appelle le methode add(value) du fils appropprié.
}
public Element getElement(){return this.elt;}
//la classe interne Element qui sera connu uniquement par la class Node
private class Element implement Comparable{
String value;
public Element(String value){this.value=value;}
public String getValue(){return this.value;}
public int compareTo(Object o)
{
//tu verifie si o n'est pas null et que c bien de la class element
return this.value.compareTo(o.getValue());
}
}
}
Voilà! ça doit ressembler à un truc comme ça. n'hésite pas à me demandeer plus de détail sur certain point qui peuvent te paraître obscure.
__________________________
rien ne sert de coder pour coder il suffit de coder à point. La fontaine (ah non c'est pas ça qu'il a dit?)
J'aimerais savoir si la classe ARRAYLISt existe déja en Java.
met est ce que la class que vous avez fait est récursive?c'est peut être des questions bètes mais je ne comprends pas tout;
Au départ, j'ai crée une class Arbre qui contient un élément et un Maillon
et une class Maillon qui contient un Arbre et un Maillon suivant puis dans le main je lis ma chaine de caractère et ma structure arbre doit créer l'arbre et donc créer un père et des maillon fils. est ce que la class Node correspond a ça?Merci
Apres je dois créer différent module en fonction de cette structure.
public static void main(String [] args){
String terme=JOptionPane.showInputDialog("Entrer votre terme fonctionnel");
Arbre arbre = new Arbre();
arbre.lire(terme);
System.out.println("ca marche");
}
}
[/code]
Voila le message d'erreur:
[quote]init:
deps-jar:
compile-single:
run-single:
java.lang.StringIndexOutOfBoundsException: String index out of range: 2
at java.lang.String.charAt(String.java:444)
le pere est :f
element est: f
element est: h
at Terme$Arbre.lireRec(Terme.java:30)
at Terme$Arbre.suivant(Terme.java:46)
at Terme$Arbre.lireRec(Terme.java:33)
at Terme$Arbre.suivant(Terme.java:43)
at Terme$Arbre.lireRec(Terme.java:33)
at Terme$Arbre.lire(Terme.java:26)
at Te[/quote]
ERREUR BBCODE SUR CE MESSAGE : - La valeur de la balise "quote" n'est pas correcte !
et oui c récursif tout ce passe dans la méthode add().
__________________________
rien ne sert de coder pour coder il suffit de coder à point. La fontaine (ah non c'est pas ça qu'il a dit?)