二叉树遍历模板(递归,非指针)

前序遍历:

void search(int x)
      cout<<a[x].self;
      if(a[x].left!=-1)search(a[x].left);
      if(a[x].right!=-1) search(a[x].right);

先输出自己,再输出左儿子,其次是右儿子;

中序遍历:

void search(int x)
      if(a[x].left!=-1)search(a[x].left);
      cout<<a[x].self;
      if(a[x].right!=-1) search(a[x].right);

后序遍历:

void search(int x)
      if(a[x].left!=-1)search(a[x].left);
      if(a[x].right!=-1) search(a[x].right);
      cout<<a[x].self;
原文地址:https://www.cnblogs.com/polebug/p/4052475.html