二叉树遍历模板(递归,非指针)
前序遍历:
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;