Language: C++

#include<stdio.h><font></font>
#define MAX 10000<font></font>
#define NUL -1<font></font>
<font></font>
struct Node{<font></font>
  int l,p,r;<font></font>
};<font></font>
<font></font>
<font></font>
int D[MAX], H[MAX];<font></font>
struct Node T[MAX];<font></font>
int n;<font></font>
<font></font>
void ST(int);<font></font>
int DE(int);<font></font>
int SI(int);<font></font>
<font></font>
int main()<font></font>
{<font></font>
  int l,r,v,i;<font></font>
<font></font>
  scanf("%d", &n);<font></font>
<font></font>
  for ( i = 0; i < n; i++ ) {<font></font>
    T[i].p = NUL;<font></font>
  }<font></font>
<font></font>
  for ( i = 0; i < n; i++ ) {<font></font>
    scanf("%d %d %d", &v, &l, &r);<font></font>
<font></font>
    T[v].l = l;<font></font>
    T[v].r = r;<font></font>
<font></font>
    if ( l != NUL ) T[l].p = v;<font></font>
    if ( r != NUL ) T[r].p = v;<font></font>
<font></font>
  }<font></font>
<font></font>
  for ( i = 0; i < n; i++ ){<font></font>
<font></font>
    D[i] = DE(i);<font></font>
    H[i] = 0;<font></font>
<font></font>
  }<font></font>
<font></font>
  for ( i = 0; i < n; i++ ){<font></font>
    if ( T[i].l == NUL && T[i].r == NUL ) { // leaf<font></font>
      H[i] = 0;<font></font>
      int p = T[i].p;<font></font>
      int z = 1;<font></font>
      while(1){<font></font>
    if ( p == NUL ) break;<font></font>
    if ( H[p] < z ) H[p] = z;<font></font>
    z++;<font></font>
    p = T[p].p;<font></font>
      }<font></font>
    }<font></font>
  }<font></font>
<font></font>
  for ( i = 0; i < n; i++ ) ST(i);<font></font>
<font></font>
<font></font>
  return 0;<font></font>
}<font></font>
<font></font>
int SI(int u){<font></font>
  if ( T[u].p == NUL ) return NUL;<font></font>
  if ( T[T[u].p].l != u && T[T[u].p].l != NUL ) return T[T[u].p].l;<font></font>
  if ( T[T[u].p].r != u && T[T[u].p].r != NUL ) return T[T[u].p].r;<font></font>
  return NUL;<font></font>
}<font></font>
<font></font>
int DE(int u){<font></font>
  int d = 0;<font></font>
  while(1){<font></font>
    u = T[u].p;<font></font>
    if ( u == NUL ) break;<font></font>
    d++;<font></font>
  }<font></font>
  return d;<font></font>
}<font></font>
<font></font>
<font></font>
void ST(int u){<font></font>
  int deg = 0;<font></font>
<font></font>
  printf("node %d: ", u);<font></font>
<font></font>
  printf("parent = %d, ", T[u].p);<font></font>
  printf("sibling = %d, ", SI(u));<font></font>
<font></font>
  if ( T[u].l != NUL ) deg++;<font></font>
  if ( T[u].r != NUL ) deg++;<font></font>
<font></font>
  printf("degree = %d, ", deg);<font></font>
  printf("depth = %d, ", D[u]);<font></font>
  printf("height = %d, ", H[u]);<font></font>
<font></font>
  if ( T[u].p == NUL ){<font></font>
    printf("root\n");<font></font>
  } else if ( T[u].l == NUL && T[u].r == NUL ){<font></font>
    printf("leaf\n");<font></font>
  } else {<font></font>
    printf("internal node\n");<font></font>
  }<font></font>
}<font></font>
<font></font>
<font></font>

Compiler output:
a.cc:1:18: warning: extra tokens at end of #include directive
    1 | #include<stdio.h><font></font>
      |                  ^~~~~~
a.cc:4:1: error: expected unqualified-id before '<' token
    4 | <font></font>
      | ^
a.cc:7:3: error: expected unqualified-id before '<' token
    7 | };<font></font>
      |   ^
a.cc:10:20: error: expected unqualified-id before '<' token
   10 | int D[MAX], H[MAX];<font></font>
      |                    ^
a.cc:11:20: error: expected unqualified-id before '<' token
   11 | struct Node T[MAX];<font></font>
      |                    ^
a.cc:12:7: error: expected unqualified-id before '<' token
   12 | int n;<font></font>
      |       ^
a.cc:14:14: error: expected unqualified-id before '<' token
   14 | void ST(int);<font></font>
      |              ^
a.cc:15:13: error: expected unqualified-id before '<' token
   15 | int DE(int);<font></font>
      |             ^
a.cc:16:13: error: expected unqualified-id before '<' token
   16 | int SI(int);<font></font>
      |             ^
a.cc:64:2: error: expected unqualified-id before '<' token
   64 | }<font></font>
      |  ^
a.cc:71:2: error: expected unqualified-id before '<' token
   71 | }<font></font>
      |  ^
a.cc:81:2: error: expected unqualified-id before '<' token
   81 | }<font></font>
      |  ^
a.cc:106:2: error: expected unqualified-id before '<' token
  106 | }<font></font>
      |  ^