package fr.ups.bioinfo.tp4;

import java.util.Scanner;

public class NoeudEntier {
	int valeur;
	NoeudEntier filsGauche, filsDroit;
	
	public NoeudEntier(int val)
	{
		valeur = val;
		filsGauche = null;
		filsDroit = null;
	}
	
	public void ajouterValeur(int val)
	{
		if(valeur > val)
		{
			if(filsGauche != null)
				filsGauche.ajouterValeur(val);
			else
				filsGauche = new NoeudEntier(val);
		}
		else
		{
			if(filsDroit != null)
				filsDroit.ajouterValeur(val);
			else
				filsDroit = new NoeudEntier(val);
		}
	}
	
	public String toString()
	{
		StringBuffer buf = new StringBuffer();
		if(filsGauche!=null)
			buf.append(filsGauche.toString());
		System.out.print(valeur+" | ");
		if(filsDroit!=null)
			buf.append(filsDroit.toString());
		return buf.toString();
	}
	
	public boolean rechercherValeur(int val)
	{
		if(valeur == val)
			return true;
		if(valeur > val)
		{
			if(filsGauche!=null)
				return filsGauche.rechercherValeur(val);
			return false;
		}
		if(filsDroit!=null)
			return filsDroit.rechercherValeur(val);
		return false;
	}
	
	public static void main(String[] args) 
	{
		NoeudEntier racine = new NoeudEntier(50);
		racine.ajouterValeur(30);
		racine.ajouterValeur(38);
		racine.ajouterValeur(12);
		racine.ajouterValeur(86);
		racine.ajouterValeur(18);
		racine.ajouterValeur(92);
		racine.ajouterValeur(27);
		racine.ajouterValeur(88);
		racine.ajouterValeur(35);
		System.out.print("Affichage des valeurs :");
		System.out.println(racine);
		System.out.println("Quelle valeur recherchez-vous ? ");
		Scanner sc = new Scanner(System.in);
		int valeurRecherchee = sc.nextInt();
		if(racine.rechercherValeur(valeurRecherchee))
			System.out.println(valeurRecherchee+" est présent dans l'arbre");
		else
			System.out.println(valeurRecherchee+" n'est pas présent dans l'arbre");
	}

}
