Ruzzle

Fermé
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017 - 13 nov. 2017 à 18:18
 infokab - 15 nov. 2017 à 17:22
Bonjour,

je doit crée une application du jeu "ruzzle "
et je veut faire ca avec un arbre n air

j'ai fait ca



public class arbre {

private char pere ;
ArrayList <arbre> fils ;


public arbre(char pere)
{
this.pere=pere; // ma racine qui va etre vide
this.fils= new ArrayList<arbre>(); // mes arbres

}

public arbre remplireArbre(String nom) // je vais faire entres un string que je doit decouper en lettres
{
// char c = decoupage(nom);
int i=0;
while(i<nom.length())
{
char c = nom.charAt(i);




}

}




et je sais pas comment faire pour remplir mon arbre avec le dictionnaire de mots 'dico.txt"

merci

1 réponse

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
13 nov. 2017 à 18:21
Bonjour,

Il te manque un argument à ton arbre : la valeur des noeuds, ce n'est pas au père de porter cette information.

public class Arbre<E> {
    private Arbre<E> pere;
    private Collection<Arbre<E>> fils;
    private E valeur;
}
0
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017
Modifié le 13 nov. 2017 à 18:33
bonsoir ,
merci pour ta repense

s'il te plait E c'est les lettres que je dois inserer dans mon arbre n air ??

et pour mon constructeur ?

merci
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019 > infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017
Modifié le 13 nov. 2017 à 18:35
Non, E c'est un type paramétré, c'est pour avoir une structure générique.

Par exemple dans ton code, tu as mis ArrayList<arbre>, c'est une utilisation spécifique de ArrayList<E> où E est un arbre.

Dans ton cas tu pourrais avoir un Arbre<String> par exemple, où chaque valeur est un String.
0
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017
Modifié le 13 nov. 2017 à 18:42
a d'accord merci j'ai jamais utiliser cette structure

et pour le constructeur comment je doit le declarer ?

moi je doit remplir mon arbre avec des lettres

merci
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019 > infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017
13 nov. 2017 à 19:01
"et pour le constructeur comment je doit le declarer ?"
Comme avant, sauf que tu remplaces tes valeurs par E.

Exemple :
public Arbre(E valeur)


Remarque : je pense que ce constructeur n'est pas pertinent, il serait sûrement utile d'avoir deux classes : Arbre qui est la structure concrète utilisée et Noeud qui compose l'arbre. L'arbre contient le nœud racine : celui qui n'a aucun père et chaque nœud référence son père, sa valeur et ses fils (manipuler directement le nœud étant interdit).

"je doit remplir mon arbre avec des lettres"
Si ton arbre fonctionne avec des types paramétré, il fonctionnera avec des lettres, mais aussi avec n'importe quelle autre type de données.

Exemples :

Arbre<String> arbre1 = new Arbre<String>("valeur");
Arbre<Integer> arbre2 = new Arbre<Integer>(42);
0
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017 > KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024
Modifié le 13 nov. 2017 à 20:20
bonsoir

public class Arbre <E> {

private Arbre <E> pere ;
private Collection<Arbre<E>> fils;
private E valeur;

//la valeur des noeuds, ce n'est pas au père
//de porter cette information.

public Arbre(Arbre pere,E valeur)
{
this.pere=pere; // ma racine qui va etre vide
this.fils= new ArrayList <Arbre <E>>(); // mes arbres
this.valeur=valeur;
}


c'est bon c'est ca ??

merci
0