RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 structure arborescente

Forum : IDE JAVA
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ IDE JAVA

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM IDE JAVA

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
myboo45
Nouveau membre
Inscrit : 29/03/2006
Messages : 12
Message
#94561
Posté le 23/04/06 à 14:08
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.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

masseuro
Membre MP
Avatar de masseuro
Inscrit : 17/11/2004
Messages : 195
Message
#94572
Posté le 23/04/06 à 16:51
tu devais par rendre ça pour le 10/04/2006? :D

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?)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

myboo45
Nouveau membre
Inscrit : 29/03/2006
Messages : 12
Message
#94575
Posté le 23/04/06 à 17:31
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!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

myboo45
Nouveau membre
Inscrit : 29/03/2006
Messages : 12
Message
#94576
Posté le 23/04/06 à 17:32
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!

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

masseuro
Membre MP
Avatar de masseuro
Inscrit : 17/11/2004
Messages : 195
Message
#94584
Posté le 23/04/06 à 18:30
bon ok!

je vois ce que tu veux.

ça doit donner un peu ça :

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?)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

myboo45
Nouveau membre
Inscrit : 29/03/2006
Messages : 12
Message
#94607
Posté le 23/04/06 à 21:59
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.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

myboo45
Nouveau membre
Inscrit : 29/03/2006
Messages : 12
Message
#94610
Posté le 23/04/06 à 22:16
voila ce que j'ai fait:
[code]
import javax.swing.*;
public class Terme {
static class Arbre{
char element;
Maillon foret;
char pere;
Arbre(){ element=' ';foret =null;}
Arbre(char e,Maillon f) {
element=e;
foret=f;
}
Arbre (char e){
this(e,null);
}
char pere(String s){
pere=s.charAt(0);
System.out.println(pere);
return pere;
}
char element(){
return element;
}
void lire(String s){
System.out.print("le pere est :");
pere=pere(s);
lireRec(s,0);
}
Maillon lireRec(String s,int i){

if(estLettre(s.charAt(i))){
element=s.charAt(i);
System.out.println("element est: "+element);
foret =suivant(s, i);
System.out.println("foret est: "+foret);
Maillon.lire(foret,s,i+1);
}
else lireRec(s,i+1);
return foret;
}
Maillon suivant(String s,int i){
Maillon suivant;
if (i==0) {
suivant=lireRec(s.substring(i+1),i+1);
System.out.println("suivant: "+suivant);
}
else {suivant = lireRec(s.substring(i+1,nbvirgule(s, i+1)),i+1);
System.out.println("ssuivant suiv : "+suivant);
}
return suivant;
}
int nbvirgule(String s,int i){
int nbvirgule=0;
int nbparenthese=1;
if(s.charAt(i)=='(')
nbparenthese++;
else if(s.charAt(i)==')')
nbparenthese--;
else if(s.charAt(i)==',')nbvirgule++;
else if((s.charAt(i)==',')&&(nbparenthese>1))
nbvirgule--;

if((s.charAt(i)==',')&&(nbparenthese==1))
return i-1;
if (i==s.length()){
foret = lireRec(s, i);
return i;
}
else
return nbvirgule(s,i+1);
}
/* public static Arbre lirearbre(String s){
Arbre arbre=new Arbre();
arbre.lire(s);
return arbre;

}*/




static boolean estLettre(char c){
return 'a'<c && c<'z';
}


}

static class Maillon{
Arbre arbre;
Maillon suivant;
Maillon(Arbre a,Maillon s){
arbre=a;
suivant=s;
}
static Maillon lire(Maillon f,String s,int i){
if(f!=null){
f.arbre.lireRec(s,i);
lire(f.suivant,s,i);
}
return f;
}


}

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 !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

gexti
Superviseur :
- Java
Modérateur :
- PHP
- Moteurprog
- Peer to peer
Avatar de gexti
Inscrit : 29/04/2004
Messages : 4746
Message
#94611
Posté le 23/04/06 à 22:23
j'ai mis 2 balises dans ton messages, c'est bien plus lisible comme ça.
Smiley

Pour ta question.
ci tu as un débordement mémoire.

Tu essayes d'insérer dans un tableau qui n'a plus de place.
__________________________
Gexti
Image

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

myboo45
Nouveau membre
Inscrit : 29/03/2006
Messages : 12
Message
#94614
Posté le 23/04/06 à 22:56
comment faire pour résoudre ce probleme? car je ne vois pas ou il faut s'arréter

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

masseuro
Membre MP
Avatar de masseuro
Inscrit : 17/11/2004
Messages : 195
Message
#94640
Posté le 24/04/06 à 09:04
ArrayList existe déjà. dans java.util.ArrayList

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?)

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM IDE JAVA



    PAGES : [1] [2]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.