Bonsoir,

Je suis en train de m'entrainer sur les AST , j ai reussi a faire une fonction qui cree
l'arbre puis initialise fils_g et fils_d
cependant je ne comprend pas comment chainee le tout , en creant un noeud dans un noeud .
Par ailleurs, est t-il possible d'avoir plusieurs structures ce chainant qui sont relies par "racine" , par exemple :

struct_tree --> struct_tree ---> Null
--> fils_g -->fils_g -> Null
--> fils_d -->fils_d --> Null

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
 
 
typedef struct s_tree	t_tree;
struct s_tree
{
  char	*cmd;
  struct s_tree	*fg;
  struct s_tree	*fd;
};
 
t_tree		*Add_Node(t_tree *tree_t, char *fg, char *fd)
{
  tree_t->fg = malloc(sizeof(*tree_t->fg) * strlen(fg));
  tree_t->fd = malloc(sizeof(*tree_t->fd) * strlen(fd));
 
  if (tree_t->fg != NULL && tree_t->fd != NULL)
    {
      tree_t->fg = fg;
      tree_t->fd = fd;
      return (tree_t);
    }
  return (NULL);
}
 
t_tree		*create_tree(t_tree *tree_t, char *cmd)
{
  t_tree	*new_t;
 
  new_t = malloc(sizeof(*new_t));
  if (new_t != NULL)
    {
      new_t->cmd = cmd;
      new_t->fg = NULL;
      new_t->fd = NULL;
      return (new_t);
    }
  return (NULL);
}
En esperant avoir ete clair ,
Cordialement