CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Arbres Binaire Java

[PoissonVolant]
[PoissonVolant]
Niveau 15
24 juin 2015 à 21:49:11

Bonjour. Je dois faire ça, mais je ne sais pas comment m'y prendre (la méthode contient) :

http://gyazo.com/4b1c11a345aa7965ba938463b8a8a94e

Les méthodes sag et sad, c'est pour les sous arbres gauche/droit. estVide() retourne si l'abre est vide ou non.

Pour la méthode contient, je pensais a parcourir les noeuds un a un, mais je ne sais pas comment faire pour aller plus loin que le sag/sad :(

De l'aide siouplé :)

dark_drow
dark_drow
Niveau 15
24 juin 2015 à 21:57:34

du récursif ! Quand tu vois Arbre, pense toujours récursif :) c'est pas tout le temps mais c'est jamais une mauvaise idée d'y penser en 1er

Message édité le 24 juin 2015 à 21:58:24 par dark_drow
[PoissonVolant]
[PoissonVolant]
Niveau 15
24 juin 2015 à 22:02:42

Oui, mais pour ce qui est de comparer les valeurs des noeuds, comment je pourrais proceder sachant que je ne peux qu'utiliser ces 4 methodes (pas d'interface Comparable) :(

[PoissonVolant]
[PoissonVolant]
Niveau 15
24 juin 2015 à 23:10:34

Need help x1654 please, j'ai un exam dessus demain matin :peur:

[PoissonVolant]
[PoissonVolant]
Niveau 15
25 juin 2015 à 07:56:24

Merci mais non, je peux pas comparer des "T" (voulu par l'énoncé).
Du coup, je sais pas comment faire.

Castelrengx
Castelrengx
Niveau 2
25 juin 2015 à 09:25:43

C'est bizarre ce que tu dis, qu'est ce que tu veux dire par je ne peux pas comparer des T ?
Dans ton cas,le type T peut être à la fois un integer, double, string, un objet,...

Ta methode contient() doit bien comparer les valeurs de tes différents noeuds de ton arbre.

[PoissonVolant]
[PoissonVolant]
Niveau 15
25 juin 2015 à 09:27:58

Par exemple, je n'ai pas le droit de faire if(T x < T y) :(

Castelrengx
Castelrengx
Niveau 2
25 juin 2015 à 10:00:00

Tu es quand même bien obligé de comparer la valeur des tes nœuds, pour te diriger vers le bon sous arbre.
Tu doit bien arrêter de parcourir ton arbre dès que tu as trouvé la valeur que tu recherchais.

Exemple 1 :


boolean contient(T x){
	if (estVide()){
		return false;
	} else if (racine() == x){
		return true;
	} else {
		if (x < racine() ){
			return sag().contient(x);
		} else {
			return sad().contient(x);
		}
	}
}

Exemple 2 :


boolean contient(T x){
	if (estVide()){
		return false;
	} else if (racine() == x){
		return true;
	} else {
		if (sag().contient(x)){
			return true;
		} else if(sad().contient(x)) {
			return true;
		} else {
			return false;
		}
	}
}
Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment