| 12
 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;
} | 
Partager