標籤:style blog io os for sp on 2014 log
先序遍曆:訪問根,遍曆左子樹,遍曆右子樹,簡稱:DLR。
中序遍曆:遍曆左子樹,訪問根,遍曆右子樹,簡稱:LDR。
後序遍曆:遍曆左子樹,遍曆右子樹,訪問根,簡稱:LRD。
數組搞的:
#pragma comment(linker, "/STACK:1024000000,1024000000")#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<map>#include<queue>#include<set>#include<cmath>#include<bitset>#define mem(a,b) memset(a,b,sizeof(a))#define lson i<<1,l,mid#define rson i<<1|1,mid+1,r#define llson j<<1,l,mid#define rrson j<<1|1,mid+1,r#define INF 1000000007#define seed 13131#define seed1 1313#define maxn 500005typedef long long ll;typedef unsigned long long ull;using namespace std;int n,ch[18][2];void pre(int i){ cout<<i<<' '; if(ch[i][0]) pre(ch[i][0]); if(ch[i][1]) pre(ch[i][1]);}void mid(int i){ if(ch[i][0]) mid(ch[i][0]); cout<<i<<' '; if(ch[i][1]) mid(ch[i][1]);}void beh(int i){ if(ch[i][0]) beh(ch[i][0]); if(ch[i][1]) beh(ch[i][1]); cout<<i<<' ';}int main(){ scanf("%d",&n); int l,r; for(int i=1;i<=n;i++) { scanf("%d%d",&l,&r); ch[i][0]=l,ch[i][1]=r; } pre(1); cout<<endl; mid(1); cout<<endl; beh(1); cout<<endl; return 0;}
wiki 3143 二叉樹的前序、中序及後序遍曆