Creer arbre binaire

choco90 Messages postés 458 Date d'inscription   Statut Membre Dernière intervention   -  
scriptiz Messages postés 1494 Statut Membre -
Bonjour,
je veux creer un arbre binaire en c++ avec la representation chainée svp donnez moi le programme.merci d'avance.
A voir également:

1 réponse

scriptiz Messages postés 1494 Statut Membre 425
 
On ne va pas tout te faire pour toi je pense :)

Ce serait bien que tu commences ton Arbre et que tu nous poste ici les problèmes que tu rencontres. Ainsi nous pourrons t'aider plus spécifiquement.

Je vais quand même te donner la source Java de mon Arbre (elle date un peu), normalement tu devrais vite comprendre la logique et pouvoir l'adapter facilement au C++ si tu t'y connais un peu.

/** 
 * Classe Arbre
 * @author Scriptiz
 * @version 1.3
 */
public class Arbre 
{
	Noeud racine;
	
	public Arbre()
	{
		initialiser();
	}
	
	public void initialiser()
	{
		this.racine = null;
	}
	
	public void add(int entier)
	{
		if(this.racine == null)
		{
			this.racine = new Noeud(entier);
		}
		else
		{
			if(entier <= this.racine.getEntier())
			{
				this.racine.sousArbreGauche.add(entier);
			}
			else
			{
				this.racine.sousArbreDroit.add(entier);
			}
		}
	}
	
	public boolean contains(int entier)
	{
		if(this.racine == null)
		{
			return false;
		}
		else
		{
			if(entier < this.racine.getEntier())
			{
				return this.racine.sousArbreGauche.contains(entier);
			}
			else if(entier > this.racine.getEntier())
			{
				return this.racine.sousArbreDroit.contains(entier);
			}
			else if(entier == this.racine.getEntier())
			{
				return true;
			}
		}
		
		return false;
	}
	
	public int nombreDeNoeuds()
	{
		int z = 0;
		
		if(this.racine == null)
		{
			return z;
		}
		
		z += this.racine.sousArbreGauche.nombreDeNoeuds();
		z++;
		z += this.racine.sousArbreDroit.nombreDeNoeuds();
		
		return z;
	}
	
	public String toString()
	{
		String s = "";
		
		if(this.racine == null)
		{
			return s;
		}
		
		s += this.racine.sousArbreGauche.toString();
		s += this.racine.getEntier() + " ";
		s += this.racine.sousArbreDroit.toString();
		
		return s;
	}
	
	private class Noeud
	{
		private int entier;
		private Arbre sousArbreGauche;
		private Arbre sousArbreDroit;
		
		protected Noeud(int entier)
		{
			this.entier = entier;
			this.sousArbreGauche = new Arbre();
			this.sousArbreDroit = new Arbre();
		}

		protected int getEntier() 
		{
			return entier;
		}

		protected void setEntier(int entier) 
		{
			this.entier = entier;
		}

		protected Arbre getSousArbreGauche() 
		{
			return sousArbreGauche;
		}

		protected void setSousArbreGauche(Arbre sousArbreGauche) 
		{
			this.sousArbreGauche = sousArbreGauche;
		}

		protected Arbre getSousArbreDroit() 
		{
			return sousArbreDroit;
		}

		protected void setSousArbreDroit(Arbre sousArbreDroit) 
		{
			this.sousArbreDroit = sousArbreDroit;
		}
	}
}
3