begin process at 2012 05 29 02:30:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Divers

 > 

Création d'un arbre n aire en C qui contient au début un élement spécial


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

Création d'un arbre n aire en C qui contient au début un élement spécial

jeudi 3 juin 2010 à 13:04:02 | Création d'un arbre n aire en C qui contient au début un élement spécial

meriem123435

Bonjour !
Je veux créer un arbre n aire en c, qui contient comme tête un élément spécial genre '#'.
J'ai déclaré ma structure comme suit :

typedef struct Arbre
{
char lettre;
char car;
struct Arbre * fils;
struct Arbre * frere;
} Arbre;

Dans cet arbre je veux insérer des mots , le arbre-> car est un élément spécial qui indique la fin du mot.

Dans ma fonction de création j'ai commencé comme ceci, mais je bloque pour la suite, faut dire que je suis un peu débutante en ce qui concerne les listes chainés et l'arborescence.

Tout d'abord on doit saisir une chaine qui représente le mot à insérer.

void CreerArbre(Arbre *Racine,char mot[])
{
Arbre *p,*q;
int i=0,l;

if(Racine==NULL)
{
Racine=(Arbre *)malloc(sizeof(Arbre));
Racine->fils=NULL;
Racine->frere=NULL;
Racine->lettre='#';
Racine->car='.';
p=Racine;
}
else
{
q=p;
p=p->fils;
l=strlen(mot);
if(p=NULL)
for (i=0;i<l;i++)
{
p=(Arbre *)malloc(sizeof(Arbre));
p->fils=NULL;
p->frere=NULL;
p->lettre=mot[i];
i=i+1;
if (i=l) p->car='.';
}
}

}


Merci de m'aider à créer cet arbre n aire
J'en ai vmt besoin !
lundi 7 juin 2010 à 09:47:29 | Re : Création d'un arbre n aire en C qui contient au début un élement spécial

Polack77

Bonjour,

Alors déjà attention quand tu fait :
Code C/C++ :
q=p;

Tes variables p et q ne sont pas encore initialisé donc tu auras des adresse aléatoire ce qui est pas cool
Donc :
Code C/C++ :
else
{
p = (Arbre *)malloc(sizeof(Arbre));
q=p; 

Que veut tu faire ici ???
Code C/C++ :
p=p->fils;


Je ne comprend pas le but de cette arbre
Pourquoi stocker carac par carac (un char* c'est mieux non ?)

Quand tu voudras supprimer l'arbre pense bien à faire des free si non tu vas pourrir ta mémoire

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo
lundi 7 juin 2010 à 13:19:02 | Re : Création d'un arbre n aire en C qui contient au début un élement spécial

meriem123435

Bonjour,

Merci de vouloir m'aider faut dire que je bloque ! Je débute question arborescence..

En fait quand je fais le truc de q=p;
le p il est déjà initialisé au début dans le 1er if il recoit la racine de l'arbre.


Pour t'expliquer le but de cet arbre, je veux créer un dictionnaire, donc pourquoi j'insère caractère par caractère c'est que l'utilisateur va saisir mot par mot donc je dois insérer caractère par caractère pour construire cet arbre. Mais il y'a plusieurs tests à faire avant d'insérer le 1er si le fils de la racine est vide pr insérer, ou bien tester si le caractère existe déjà ...


j'ai changé un peu le code de ma fonction qui crée l'arbre mais il n'est pas encore fini

Code C/C++ :


{
Racine=(Arbre *)malloc(sizeof(Arbre));
Racine->fils=NULL;
Racine->frere=NULL;
Racine->lettre='#';
Racine->car='.';

p=Racine;


do
{

printf("Donner le mot a ajouter : ");
scanf(" %s",mot);

l=strlen(mot);

if(p->fils==NULL)
for(i=0;i<l;i++)
{
p->fils=(Arbre *)malloc(sizeof(Arbre));
p=p->fils;
p->lettre=mot[i];
p->frere=NULL;
p->fils=NULL;
p->car='';
if(i=l-1) p->car='.';//Caractère spécial pour indiquer la fin du mot
}
else
{
normalement là il me reste deux cas à traiter
1er cas si la 1er lettre du nouveau n'existe pas alors le pointeur va avoir un frère
2ème cas si la première ou les premières lettres du mots existent ben faut pas les rajouter encore jusqu'a ce qu'on arrive à la lettre qui n'existe plus pour créer un frère

}
printf("Voulez vous ajouter un autre mot?");
rep=getch();

}while(rep!='N');

return Racine;
}


Merci
jeudi 24 juin 2010 à 10:21:52 | Re : Création d'un arbre n aire en C qui contient au début un élement spécial

Polack77

Plusieurs urgences à gérer ces der semaines mais sa y est j'ai un peut de temps
Alors cette arbre c'est terminé ?

Question bête pourquoi utilise tu une variable supplémentaire pour marquer la fin du mot plutôt que de tester fils à NULL ?

Amicalement
1000 recherches sur Google = 1Km de voiture en CO² (réfuté par Google )
1000 recherches sur Forestle = 100 m² de forêt tropicale sauvé .
Surfez écolo


Cette discussion est classée dans : arbre, mot, racine, spécial, aire


Répondre à ce message

Sujets en rapport avec ce message

supprimer un mot d'un arbre en C [ par toto000 ] Bonjour, J'ai un arbre ternaire de recherche et je voudrai supprimer un mot dans cet arbre.Voilà ce que j'ai fais mais ça ne marche pas pour tous les Tri Tas avec arbre P-aire [ par LiGrAnD ] bonjour, j'ai besoin de programmer un tri par tas generaliser aux arbres p-aire et non pas binaire comme habituellement.pourriez vous m'aider car la j arbre 4-aire [ par professeurr ] Salut,Quelqu'un pourrait me founir la méthode de la définition d'une sctructure (struc) en C d'un arbre 4-aire ou a un tuto référant à cette structure Problème pointeur en c++ [ par ch3mical ] Bonjourj'ai un problème avec une partie de code , lorsque je créer mon arbre binaire jai un message d'erreur lorsque je rappel ma fonction récursive . Pointer dans arbre binaire [ par laurent57150 ] Bonjour j'essaye d'ecrire un programme utilisant un arbre binaire!Le probleme c'est que pour remplir mon arbre j'utilise une fonction recursive mais a arbre lexicographique [ par finoss ] Bonjour,Je dois réalisé pour un projet un arbre lexicographique en C, j'ai réussi à faire le code pour importer les 16000 mots depuis un fichier texte simulation graphique d'un arbre n-aire [ par montana2004 ] salut,j'ai besoin d'aide pour realiser mon projet d'éte qui a pour sujetsimulation graphique de la creation,recherche,suppression,ajout dans un arbre Arbre n-aire [ par fairyyoy ] S.O.S s'il vous plait on a besoin d'un aide urgent sur les algorithmes concernant les abres n-aire :création,suppression, recherche...Ce sera très gen Petit problème pour créer un arbre binaire [ par dragarth1 ] Bonjour j'ai un travail à faire pour l'école, il faut que je crée un arbre binaire à partir d'un fichier, comme un arbre généalogique, la racine étant Un pb lors d'allocation de 3eme elts de type [ par eemikhm ] Bonjour,le programme suivant est écrit et exécuter par DEVC++. Pas d'erreurs de compilation, le problème c'est que lors de l'exécution de la 4eme itér


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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,529 sec (4)

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