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

Mon ABR/20

cmoinsmoins
cmoinsmoins
Niveau 7
06 août 2012 à 11:54:03

Salut,
je viens de coder un Arbre Binaire de Recherche, et je voulais savoir ce que vous en pensiez, ce que je devrais ajouter, retirer, etc.
Il peut pour l'instant ajouter des valeurs, en rechercher et en retirer.
Lien : https://rapidshare.com/files/306636652/main.cpp

Gleuh
Gleuh
Niveau 10
06 août 2012 à 12:01:28

http://pastebin.com/pwYSrhy1
Je lui ai posté son main.cpp a télécharger sur pastebin.

chris_27
chris_27
Niveau 10
06 août 2012 à 13:09:05

struct noeud { :d) en C++, utilise des classes plutôt que des struct.

noeud* :d) en C++, utilise des références (noeud&) ... et même des références constantes (const noeud&) si le contenu du noeud ne change pas.

main :d) à mettre à la fin... c'est super pénible les main au milieu du code car : 1/ ça oblige à donner les prototypes de toutes les autres fonctions ; 2/ flemme de scroller dans le code jusqu'à tomber sur le main.

« noeud root;
root.fSup = NULL;
root.fInf = NULL;
root.valeur = valeur_initiale;
» :d) en C++, utilise des classes (bis).

Le switch n'est pas complet. Pense à ajouter un cas « default: » même s'il ne fait rien de futé.

« afficher(*racine.fInf); » :d) racine->fInf c'est beaucoup plus lisible à mon goût.

Pour le reste, je n'ai pas testé le code. On va dire qu'il marche. :ange:

kern3l
kern3l
Niveau 5
06 août 2012 à 13:26:06

merci je vais le refaire en tenant compte de vos remarques

chris_27
chris_27
Niveau 10
06 août 2012 à 13:27:48

PS: j'ai oublié de préciser mais... vu le faible nombre de mes remarques, le code original est plutôt bien (s'il marche, là encore j'ai pas testé mais je fais confiance à l'OP).

cmoinsmoins
cmoinsmoins
Niveau 7
06 août 2012 à 15:36:31

J'ai corrigé mon code, amélioré l'interface et ajouté une fonction de stats sur l'arbre :
nombre de noeuds ;
dernier ajout;
dernier retrait;

Le lien du .cpp : http://www.mediafire.com/?ood8cbtatdp4ubd
Le lien du .exe : http://www.mediafire.com/?qbrh85d2faysrd7

Merci de votre aide et de votre attention :hap:

chris_27
chris_27
Niveau 10
06 août 2012 à 15:54:57

Utilise un site dédié à l'affichage de code plutôt.

Quant au main.exe, il faudrait être fou pour le télécharger, et encore plus pour le lancer. :malade:

cmoinsmoins
cmoinsmoins
Niveau 7
06 août 2012 à 16:32:19

Mouahah j'ai mis un troll dans le .exe ! :diable:
Blague a part voila un lien pour visionner le code :
https://compilr.com/cmoinsmoins/abr/HelloWorld.cpp

chris_27
chris_27
Niveau 10
06 août 2012 à 16:54:28

C'est "marrant" (en fait je ris jaune là) de voir comment les gens ont une vision binaire de l'objet. :(

Quand je disais de faire de l'objet, je faisais référence à "changer le struct du code initial en class et ajouter un constructeur et un destructeur". Jamais il ne m'est venu à l'idée de bouger tout le code dans un gros objet mastodonte (et de fait, c'est inutile en plus d'être moins lisible :malade: ).

Bref, le monde n'est pas soit sans objet, soit full objet. Le meilleur est d'ailleurs souvent situé (au juste milieu) entre les deux.

Sinon (site en carton, le copier/coller ne marche pas :@ ) :
«
Noeud* fSup;
Noeud *fInf;
»
:d) il faut choisir un camp là : le cohérent (1ère ligne) ou ce que la majorité des gens font (la 2ème ligne).

Et il manque des const un peu partout pour faire propre (ce qui est plus dur à faire maintenant que le code est écrit en full objet, sic).

cmoinsmoins
cmoinsmoins
Niveau 7
06 août 2012 à 16:58:45

La je ne te suis plus : comment qualifie tu ce juste milieu ?
sinon, que reproche tu au :
«
Noeud* fSup;
Noeud *fInf;
»
?

J'utilise un pointeur un un noeud fils superieur, et un pointeur
vers un noeud fils inferieur.

A propos du site, c'est tout ce que je connais... si tu en as un autre a proposer, je suis preneur :)

chris_27
chris_27
Niveau 10
06 août 2012 à 17:04:01

http://pastebin.com est très bien. Au moins, on ne se tape pas tout la fioriture d'édition de code qui, en plus de ne rien apporter, nous prive de fonctionnalités utiles comme le copier/coller.

sinon, que reproche tu au :
«
Noeud* fSup;
Noeud *fInf;
»
? :d) il faut être cohérent. Soit tu mets l'étoile à coté du type, soit tu le mets à coté du nom de la variable. Mais mélanger les deux, c'est interdit !

cmoinsmoins
cmoinsmoins
Niveau 7
06 août 2012 à 17:24:05

D'accord, je n'avait pas capté. Merci pour le site.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment