# C et C++ > C > Contribuez >  Arbres binaires [Sources]

## wincher

je pense qu'une partie consacre aux arbres serait la bienvenue !!
- comment crer un arbre binaire ?
- quelles sont les fonctions de bases pour manipuler des arbres binaires ?

j'ai moi mme besoin d'aide concernant les arbres en C notamment  cause des pointeurs et j'ai du mal  m'en sortir !

rponses aux 2 questions :

+ Un abre binaire est une suite de pointeurs, chaque pointeurs pointe une structure dans laquelle on peut mettre une valeur (int ou char par exemple) ainsi que 2 champs pointant les structures suivantes (appeles fils gauche et fils droit). En clair : un arbre gnalogique est un arbre binaire  l'envers.



```

```

+ Voila les fonctions de base :



```

```

----------


## PRomu@ld

Personnellement, je ne pense pas que cel devrait faire partie de la fac, ce n'est pas un problme du langage, tout ceci devrai tre dans la partie source.

----------


## gl

> Personnellement, je ne pense pas que cel devrait faire partie de la fac, ce n'est pas un problme du langage, tout ceci devrai tre dans la partie source.



Entierement d'accord avec toi. J'ai d'ailleur modifier le TAG de la question

----------


## millie

> ```
> 
> ```



Je trouve que ce genre de declaration (desole, je suis sur qwerty) est a eviter, sans connaitre l'implementation, on pourrait croire que l'arbre a est mis entierement sur la pile (alors que ce n'est qu'un pointeur).





> p=(arbre)malloc(sizeof(noeud));


Le cast est inutile.

Tu n'as definis aucun destructeur... Je trouves qu'il manque des operations tel que : estFeuille.

Une operation de parcours serait egalement utile, car ici, sans connaitre l'implementation, on serait oblige d'effectuer des appels recursifs (a eviter en C, il peut vite y avoir un debordement de pile).

----------


## Mdinoc

Pour un arbre  chanage simple, de toute faon, il faudra forcment une pile (qu'elle soit sur la pile du programe (rcursif pur) ou sur le tas("itratif avec pile")) pour faire un parcours...

----------


## disturbedID

> Pour un arbre  chanage simple, de toute faon, il faudra forcment une pile (qu'elle soit sur la pile du programe (rcursif pur) ou sur le tas("itratif avec pile")) pour faire un parcours...


Pour quel type de parcours?
Ca ne me semble pas impossible de parcourir un arbre sans utilis de pile, mais juste avec 1 ou 2 variable temporaires.

----------


## Mdinoc

Pour un parcours en profondeur : Avec un chanage simple, une pile est indispensable pour remonter.

----------


## disturbedID

> Pour un parcours en profondeur : Avec un chanage simple, une pile est indispensable pour remonter.


nono, si tu parle juste de parcourir un arbre bianaire, j'essayerai de donner un pseudo code si t'es pas convaincu.

----------


## Mdinoc

Donne donc.

----------


## disturbedID

> Pour un parcours en profondeur : Avec un chainage simple, une pile est indispensable pour *remonter*.


Je viens de comprendre notre diffrant, je suppose que dans ton arbre, tu n'as pas de champs pre ? Si c'est le cas je m'excuse de pas avoir prvenu plus tt et effectivement la pile et obligatoire.

----------


## Mdinoc

En effet, c'est ce que je voulais dire par "avec un chanage simple".

----------


## Franck.H

Ouch  ::?:  Il est vieux ce post dis donc  ::lol::  Ca me semble un peu lg pour ajouter ca dans les sources, pas de structuration de la source etc...C'est un peu donn  la _va-vite_.

Le code lui mme n'est pas au top, aucun test sur les arguments ni mme sur les allocations de mmoire etc... vraiment aucun scurit  ::?:  

Dommage  ::aie::

----------

