Language: C++

#include<stdio.h>
#include<stdlib.h>

struct node{
  struct node *right;
  struct node *left;
  struct node *parent;
  int key;
};

typedef struct node *Node;
Node root;

void insert(int k){
  Node *y = NULL;//x??????
  Node *x = root;//t????????£???
  Node *z;

  z = malloc(sizeof(struct node));
  z->key = k;
  z->left = NULL;
  z->right = NULL;

  while(x != NULL){
    y = x;
    if(z->key < x->key)x = x->left;
    else x = x->right;
  }

  z->parent = y;

  if( y == NULL )root = z;
  else if(z->key < y->key) y->left = z;
  else y->right = z;

}

//ok inorder
void inorder(Node u){
  if(u->left != NULL)inorder(u->left);
  printf(" %d",u->key);
  if(u->right != NULL)inorder(u->right);
}


//ok preorder
void preorder(Node u){
  printf(" %d",u->key);
  if(u->left != NULL)preorder(u->left);
  if(u->right != NULL)preorder(u->right);
}


int main(){
  int n, i, x;
  char com[20];
  scanf("%d", &n);

  for ( i = 0; i < n; i++ ){
    scanf("%s", com);
    if ( com[0] == 'i' ){
      scanf("%d", &x);
      insert(x);
    }
    else if ( com[0] == 'p' ){
      inorder(root);
      printf("\n");
      preorder(root);
      printf("\n");
    }
  }
  return 0;
}

Compiler output:
a.cc: In function 'void insert(int)':
a.cc:16:13: error: cannot convert 'Node' {aka 'node*'} to 'node**' in initialization
   16 |   Node *x = root;//t????????£???
      |             ^~~~
      |             |
      |             Node {aka node*}
a.cc:19:13: error: invalid conversion from 'void*' to 'node**' [-fpermissive]
   19 |   z = malloc(sizeof(struct node));
      |       ~~~~~~^~~~~~~~~~~~~~~~~~~~~
      |             |
      |             void*
a.cc:20:6: error: request for member 'key' in '* z', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   20 |   z->key = k;
      |      ^~~
a.cc:21:6: error: request for member 'left' in '* z', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   21 |   z->left = NULL;
      |      ^~~~
a.cc:22:6: error: request for member 'right' in '* z', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   22 |   z->right = NULL;
      |      ^~~~~
a.cc:26:11: error: request for member 'key' in '* z', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   26 |     if(z->key < x->key)x = x->left;
      |           ^~~
a.cc:26:20: error: request for member 'key' in '* x', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   26 |     if(z->key < x->key)x = x->left;
      |                    ^~~
a.cc:26:31: error: request for member 'left' in '* x', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   26 |     if(z->key < x->key)x = x->left;
      |                               ^~~~
a.cc:27:17: error: request for member 'right' in '* x', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   27 |     else x = x->right;
      |                 ^~~~~
a.cc:30:6: error: request for member 'parent' in '* z', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   30 |   z->parent = y;
      |      ^~~~~~
a.cc:32:25: error: cannot convert 'node**' to 'Node' {aka 'node*'} in assignment
   32 |   if( y == NULL )root = z;
      |                         ^
      |                         |
      |                         node**
a.cc:33:14: error: request for member 'key' in '* z', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   33 |   else if(z->key < y->key) y->left = z;
      |              ^~~
a.cc:33:23: error: request for member 'key' in '* y', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   33 |   else if(z->key < y->key) y->left = z;
      |                       ^~~
a.cc:33:31: error: request for member 'left' in '* y', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   33 |   else if(z->key < y->key) y->left = z;
      |                               ^~~~
a.cc:34:11: error: request for member 'right' in '* y', which is of pointer type 'Node' {aka 'node*'} (maybe you meant to use '->' ?)
   34 |   else y->right = z;
      |           ^~~~~