salut, j'ai ce code (pour l'arbre binaire) mais j'ai un problème avec le tableau ; je veux que la personne rentre une expression et la stocke dans le tableau qui est de type char, sauf que quand je rentre "123", ça me retourne des valeurs bizarres. Est-ce que quelqu'un pourra m'aider svp ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include<stdio.h>
#include<stdlib.h>
 
typedef struct treeNode
{
    int data;
    struct treeNode *left;
    struct treeNode *right;
 
} treeNode;
 
treeNode * Insert(treeNode *node,int data)
{
    if(node==NULL)
    {
        treeNode *temp;
        temp = (treeNode *)malloc(sizeof(treeNode));
        temp -> data = data;
        temp -> left = temp -> right = NULL;
        return temp;
    }
 
    if(data >(node->data))
    {
        node->right = Insert(node->right,data);
    }
    else if(data < (node->data))
    {
        node->left = Insert(node->left,data);
    }
    /* Else there is nothing to do as the data is already in the tree. */
    return node;
 
}
 
void PrintInorder(treeNode *node)
{
    if(node==NULL)
    {
        return;
    }
    printf("%d ",node->data);
    PrintPreorder(node->left);
    PrintPreorder(node->right);
}
 
void PrintPreorder(treeNode *node)
{
    if(node==NULL)
    {
        return;
    }
    PrintInorder(node->left);
    printf("%d ",node->data);
    PrintInorder(node->right);
 
}
 
int main()
{
    treeNode *root = NULL;
 
    //char tableau[4+1] = { 3,4,5,6};
    int i=0;
    char tableau[4+1];
    printf(("donner une expression: "));
    scanf("%s",tableau);
    for(i=0; i<4; i++)
    {
        root = Insert(root, tableau[i]);
    }
 
    printf("infixe: \n");
    PrintInorder(root);
    printf("\n");
    printf("prefixe: \n");
    PrintPreorder(root);
    printf("\n");
    treeNode * temp;
}