begin process at 2012 05 28 13:30:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

arbre de dico


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

arbre de dico

vendredi 20 février 2009 à 22:31:32 | arbre de dico

abdel31dz

salut,

j'essaye de faire un arbre de dico mais ça bloque et ça veut pas se compiler

voila ce que j'ai fais

[code]
#include <cstdlib>
#include <iostream>



        
  typedef struct s_arbre
{
    struct s_arbre *droite, *gauche;
    char *info;
} t_arbre;


//Fonction de recherche dans l'arbre:
int recherche(t_arbre *arbre, char *chaine)
{
    if (arbre == NULL)
          return 0;
    else if (stricmp(arbre->info, chaine) == 0)
          return 1;
    else if (stricmp(arbre->info, chaine) < 0)
          return recherche(arbre->droite, chaine);
    else
          return recherche(arbre->gauche, chaine);
}

//Insertion d'un élément de façon ordonné:
void CreerFeuille(char *chaine, t_arbre **arbre)
{
    *arbre = (t_arbre*) malloc(1 * sizeof(t_arbre));
    //Regarder si strlen + 1 ou seulement strlen, je m'en rappelle jamais
    (*arbre)->info = (char*) malloc((strlen(chaine) + 1)*sizeof(char));
    strcpy((*arbre)->info, chaine);
    (*arbre)->gauche = NULL;
    (*arbre)->droite = NULL;
}
 void Insertion(t_arbre **arbre, char *chaine)
{
    if (*arbre == NULL)
       CreerFeuille(chaine, arbre);
    else if (stricmp(chaine, (*arbre)->info) >= 0)
       (*arbre)->droite = chaine;
    else
       Insertion(*arbre)->gauche, chaine;
      
}

//Suppression d'un élément:
void SupprimerNoeud(t_arbre **arbre)
{
    t_arbre *p, *q;

    p = *arbre;
    if ((*arbre)->droite)
    {
       q = (*arbre)->droite;
       while (q->gauche)
              q = q->gauche;
       q->gauche = p->gauche;
       (*arbre) = (*arbre)->gauche;
    }
    else
       (*arbre) = (*arbre)->gauche;
    free(p->info);
    free(p);
}
void Supprimer(t_arbre **arbre, char *chaine)
{
    if (*arbre)
   {
          if (stricmp((*arbre)->info, chaine) == 0)
                SupprimerNoeud(arbre);
          else if (stricmp((*arbre)->info, chaine) > 0)
                Supprimer(&((*arbre)->gauche), chaine);
          else
                Supprimer(&((*arbre)->droite), chaine);
    }
}      
                 
    system("PAUSE");
    return EXIT_SUCCESS;
}
[/code]


Cette discussion est classée dans : arbre, chaine, gauche, info, if


Répondre à ce message

Sujets en rapport avec ce message

arbres binaires en C [ par toto000 ] Bonjour,J'ai un pointeur sur un arbre binaire.Si je vais dans son fils gauche, j'ai un 0 et lorsque je vais dans son fils droit, j'ai un 1.Je voudrai Arbres Binaire tri simple d'entier (rapide) ;) [ par bluenox ] Bonjour ts le monde Voila mon probleme trier un arbre recursivement; Mon code me donne la fameuse erreur segmentation. J'envoie dans ma fonction l'a Construction d'un arbre à partir d'une chaine de caractères [ par dahlsimus ] Bonjour, Je souhaite construire un arbre représentant une expression booléenne saisie sous le forme d'une chaîne de caractère (ex: (a+b).C avec + OR e creation récursive de l'arbre de codage de la compression Huffman [ par kuja2053 ] Bonjour, Voila mon probleme : ayant un projet sur la compression de Huffman, j'ai décider de changer le format de l entete de mon fichier suite à un c CGI Decodage URI [ par Math1004 ] Salut a tous .Je debute en C++ ( je viens de m y mettre pour faire un cgi ^^ ) .En bref , j ai un formulaire qui envoie des données je les recuperes e arbre binaire [ par marwanos001 ] stl tout le monde !!j'ai  rencontré un problème dans la manipulation des arbres binaires de recherche!par exemple je veut mettre toutes les feuilles d Gestion de plusieurs ports RS232 [ par dissezfr ] Bonjour à tous d'abordJ'ai récupéré un code sur le site permettant de géré un port série, j'aimerai piloter 8 (voir +) ports série avec un seul ordina problème chat [ par Adict ] salut tout le monde [^^happy17] alors j'ai commencé depuis peu à vouloir créer un "chat" simple. j'utilise donc les sockets qui marchent mais j'ai 2 Conversion des minuscules accentuées en minuscules sans accent : impossible ? [ par ungars2 ] Bonjour, voici les messages d'erreurs de GCC pour ce code (c'est juste un exemple) : Line Location main.c:34: warning: multi-character character con récupérer les chaînes comprises entre 2 balises [ par mervat ] bonjour, je veux récupérer de mon texte toutes les chaines comprises entre et , j'espère que c'est possible et que vous pouvez m'aider à corriger ce


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,186 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales