1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
void addNode(node **tree, FILE* f,FILE* fichier)
{
char ch[36],cin[8],ch1[28];
f= fopen("arbre.txt", "w");//fichier tempo
fichier= fopen("testarbre.txt", "r");//fichier intiale
while (!feof(fichier))
{
fgets( ch , 35, fichier );
node *tmpNode;
node *tmpTree = *tree;
node *elem =(node*)malloc(sizeof(node));
strcpy(elem->line, ch);//ch est une ligne de fichier
elem->left = NULL;
elem->right = NULL;
if(tmpTree)
do
{
tmpNode = tmpTree;
sscanf(ch,"%s %s",cin1,ch1);//extraire le cin d'une ligne de fichier
sscanf(elem->line,"%s %s",cin2,ch2);//extraire le cin de ligne stocker dans l arbre
if(strcmp(ch1,ch2) > 0 )/les comparer et selon leur valeur les placé
{
tmpTree = tmpTree->right;
if(!tmpTree) tmpNode->right = elem;
fprintf(f,"%s\n",tmpTree->line);//ecrire la ligne dans un autre fichier temporaire
}
else
{
tmpTree = tmpTree->left;
if(!tmpTree) tmpNode->left = elem;
fprintf(f,"%s\n",tmpTree->line);
}
}
while(tmpTree&&f);
else *tree = elem;
}
fclose(fichier);
fclose(f);
} |
Partager