Language: C

#include<stdio.h>
#define MAX 10000
#define NIL -1

struct Chain{
   int p, l, r;
};

struct Chain
   T[MAX];

int preParse(int u){
   if (u==NIL)
      return;
   printf(" %d", u);
   preParse(T[u].l);
   preParse(T[u].r);
}

int inParse(int u){
   if (u==NIL)
      return;
   inParse("T[u].l");
   printf(" %d", u);
   inParse("T[u].r");
}

int postParse(int u){
   if (u==NIL)
      return 0;
   postParse("T[u].l");
   postParse("T[u].r");
   printf(" %d", u);
}

int main()
{
   int i, n, id, l, r, root;

   scanf("%d", &n);
   for (i=0; i<n; i++)
      T[i].p = NIF;

   for (i=0; i<n; i++){
      scanf("%d %d %d", &id, &l, &r);
      T[id].l = l;
      T[id].r = r;
      if (l!=NIL)
         T[l].p = id;
      if (r!=NIL)
         T[r].p = id;
   }

   for (i=0; i<n; i++){
      if (T[i].p==NIL)
         root = i;
   }

   puts("Preorder");
   preParse(root);
   printf("\n");
   puts("Inorder");
   inParse(root);
   printf("\n");
   puts("Postorder");
   postParse(root);
   printf("\n");

   return 0;
}

Compiler output:
main.c: In function 'preParse':
main.c:14:7: error: 'return' with no value, in function returning non-void [-Wreturn-mismatch]
   14 |       return;
      |       ^~~~~~
main.c:12:5: note: declared here
   12 | int preParse(int u){
      |     ^~~~~~~~
main.c: In function 'inParse':
main.c:22:7: error: 'return' with no value, in function returning non-void [-Wreturn-mismatch]
   22 |       return;
      |       ^~~~~~
main.c:20:5: note: declared here
   20 | int inParse(int u){
      |     ^~~~~~~
main.c:23:12: error: passing argument 1 of 'inParse' makes integer from pointer without a cast [-Wint-conversion]
   23 |    inParse("T[u].l");
      |            ^~~~~~~~
      |            |
      |            char *
main.c:20:17: note: expected 'int' but argument is of type 'char *'
   20 | int inParse(int u){
      |             ~~~~^
main.c:25:12: error: passing argument 1 of 'inParse' makes integer from pointer without a cast [-Wint-conversion]
   25 |    inParse("T[u].r");
      |            ^~~~~~~~
      |            |
      |            char *
main.c:20:17: note: expected 'int' but argument is of type 'char *'
   20 | int inParse(int u){
      |             ~~~~^
main.c: In function 'postParse':
main.c:31:14: error: passing argument 1 of 'postParse' makes integer from pointer without a cast [-Wint-conversion]
   31 |    postParse("T[u].l");
      |              ^~~~~~~~
      |              |
      |              char *
main.c:28:19: note: expected 'int' but argument is of type 'char *'
   28 | int postParse(int u){
      |               ~~~~^
main.c:32:14: error: passing argument 1 of 'postParse' makes integer from pointer without a cast [-Wint-conversion]
   32 |    postParse("T[u].r");
      |              ^~~~~~~~
      |              |
      |              char *
main.c:28:19: note: expected 'int' but argument is of type 'char *'
   28 | int postParse(int u){
      |               ~~~~^
main.c: In function 'main':
main.c:42:16: error: 'NIF' undeclared (first use in this function); did you mean 'NIL'?
   42 |       T[i].p = NIF;
      |                ^~~
      |                NIL
main.c:42:16: note: each undeclared identifier is reported only once for each function it appears in