tjrs ma demadé de saisir les ..

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
81
82
83
84
85
86
87
88
#include<stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
 
/* Ce fichier définit la structure et la manipulation d'un
   arbre binaire de recherche. */
 
typedef struct node_t
{
  int info;
  struct node_t *left;
  struct node_t *right;
} node_t;
 
 
 
/* Les signatures de fonctions. */
 
int printf_node(node_t* node);
 
int printf_node(node_t* node)
{
 
  if (node == NULL) 
    { 
      return(0); 
    };
 
  printf_node (node->left);
  printf("Node = %d",node->info);
  printf_node (node->right);
  return(0);
}
 
 
/* Adding a node. */
 
node_t* adding_node (int val, node_t* node)
{
  if (node == NULL) 
    {
      node = (node_t *) malloc(sizeof(node_t));
      node -> left  = NULL;
      node -> right = NULL; 
      node -> info  = val;
      return(node);
    }
  else
    {
      /* Ici, on recherche l'endroit ou placer la brique. */
      if (val < node->info)
        {
          /* Ajout en left. */
          (node -> left) = adding_node (val, node->left);
          return(node);
        }
      else
        {
          /* Ajout en right. */
          (node -> right) = adding_node (val, node->right);
          return(node);
        }
    }
}
 
int main(int argc, char *argv[])
{
 
  node_t * tree;
  int ret;
  int nb;
 
  ret=1;
  tree = NULL;
 
  while(ret!=0)
    {
      printf("\nDonner un nombre : ");
      ret=scanf("%d",&nb);
      if (ret!=0) { tree=  adding_node(nb,tree); };
    }
 
  printf("\n Affichage de l'arbre \n");
  printf_node(tree);
  printf("\n");
  exit(0);
}