Probleme pour creer un arbre en java

Fermé
Utilisateur anonyme - 6 janv. 2007 à 02:02
papillon2000 Messages postés 106 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 12 janvier 2010 - 12 mars 2009 à 20:03
Bonjour, je suis un débutant en java et j’aurais besoin d’aide pour construire un arbre dont les étiquettes sont des entiers
pour un projet de parcours en largeur et en profondeur d’un arbre.

Je me suis documenté sur le net, je n'ai rien réussit à trouver de concret.
J’ai compris ce que mon prof a dit mais je n’arrive pas à l’implémenter.

Il a dit que l’arbre était fait de nœud et qu’il faut donc une class Arbre
Implémenté ainsi.
  
public class Arbre
{
	Noeud racine;
	int NbNoeud;
	
	public Arbre(Noeud n)
	{
		racine=n;
	}
}

Puis une classe Nœud avec la valeur du nœud, le nœud père et la liste des nœuds fils
et une classe listeNoeud pour stocker les nœuds fils.

Est-ce que quelqu’un pourrais m’aider à corriger mon code.
L’arbre doit être codé de manière simple de bout en bout et on ne peut pas faire appel à des méthodes ou class déjà établies.

Mon code à moi donne ceci mais je n’ai pas l’impression que cela crée un arbre :

 public class Arbre
{
	Noeud racine;
	int NbNoeud;
	
	public Arbre(Noeud n)
	{
		racine=n;
	}

 public static void main (String argv[])
 {
Noeud a = new Noeud (45,null);
Noeud f1 = new Noeud (23,a);
Noeud f2 = new Noeud (56,a);
a.ajoutListeNoeud (f1);
a.ajoutListeNoeud (f2);

}

import java.util.*;
class Noeud extends Arbre 
{
	int valeur;
	Noeud pere;
	ListeNoeuds fils;
	int NbFils;
	Noeud[]  listElt;
	 public Noeud(int v, Noeud p)
        {
	    valeur = v;
listElt = new Noeud[10];
for(int i=0; i<10; i++)
listElt=null;
	   
        }
	public boolean ajoutListeNoeud(Noeud n)
{
	int compt=0;
	while (listElt[compt]!=null & compt<10)
	compt++;
	if (compt==10)
	return false;
	else{
		listElt[compt]=n;
		return true;
	}
}
}	
}



merci,
Configuration: Windows XP
Internet Explorer 7.0</code>
A voir également:

4 réponses

Utilisateur anonyme
22 janv. 2007 à 12:55
Salut!

Ne te complique pas trop la vie.


Pour la classe Noeud, implemente simplement l'interface MutableTreeNode.

Par exemple:
package trees;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;

import javax.swing.tree.MutableTreeNode;
import javax.swing.tree.TreeNode;

public class TreeNode_Impl implements MutableTreeNode {
	private ArrayList children;

	private MutableTreeNode parent;

	private Object userObject;

	public TreeNode_Impl() {
		this(null);
	}

	public TreeNode_Impl(Object userObject) {
		super();
		children = new ArrayList();
		this.userObject = userObject;
	}

	public void insert(MutableTreeNode child, int index) {
		if (index >= 0 && index < children.size()) {
			children.add(index, child);
		}
	}

	public void remove(int index) {
		MutableTreeNode node = (MutableTreeNode) children.remove(index);
		if (node != null) {
			node.setParent(null);
		}
	}

	public void remove(MutableTreeNode node) {
		if (children.contains(node)) {
			children.remove(node);
		}
	}

	public void setUserObject(Object object) {
		this.userObject = object;
	}

	public void removeFromParent() {
		parent.remove(this);
	}

	public void setParent(MutableTreeNode newParent) {
		this.parent = newParent;
		parent.insert(this, parent.getChildCount());
	}

	public TreeNode getChildAt(int childIndex) {
		return (TreeNode) children.get(childIndex);

	}

	public int getChildCount() {
		return children.size();
	}

	public TreeNode getParent() {
		return parent;
	}

	public int getIndex(TreeNode node) {
		if(!(children.contains(node)))
			return -1;
		return children.indexOf(node);
	}

	public boolean getAllowsChildren() {
		return false;
	}

	public boolean isLeaf() {
		return children.size()==0;
	}

	public Enumeration children() {
		return Collections.enumeration(children);
	}

	public Object getUserObject() {
		return userObject;
	}

}



Mais tu peux aussi utiliser des classes Java qui implémentent déjà ces méthodes. Par exemple: DefaultMutableTreeNode.

Je te laiss le soin de créer ta classe Arbre qui devra contenir les différents algortihmes de parcours ...


;-)
7
nollla Messages postés 14 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 8 mai 2008
1 mai 2008 à 14:23
slt comment cree un arbre de java tel que les noeuds sont les lien d'un fichier html pour q'on peut parcourir tout les liens de fichier html
merci
1
papillon2000 Messages postés 106 Date d'inscription samedi 13 décembre 2008 Statut Membre Dernière intervention 12 janvier 2010 15
12 mars 2009 à 20:03
bonsoir a tous,je veux faire un algoritheme pour la reches des fils(tous le sos arbre ou le nombre d'arcs à partir de ce sommet) d'un taches dans un réseau de taches.
1
fedup Messages postés 1 Date d'inscription lundi 11 février 2008 Statut Membre Dernière intervention 11 février 2008 1
11 févr. 2008 à 20:50
bonjour comment implementer une arbre genealogique en c++ svp. merci pour votre aide
-1