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

前序遍历:

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;

 

posted @ 2014-10-26 17:58  polebug  阅读(291)  评论(0编辑  收藏  举报