1020 Tree Traversals (25分)

1.层次遍历

2.不一定是完全二叉树,所以level存储后输出要注意

3.由于不一定是完全二叉树,所以数组大小需要给够  不然会段错误  或者答案错误

 

除此之外  在先序遍历时存储,根结点需要注意找对。

#include

using namespace std;

const int N = 1000000+5;
int in[N], po[N];//中  后
int level[N];
void pre(int root, int l, int r) {//先序遍历
	if(l >= r) return;
	int i;

	for(i=l; i= r) return;
	int i;

	for(i=l; i> n;

	for(int i=0; i> po[i];//左右根
	}
	for(int i=0; i> in[i];//左根右
	}

	//pre(n-1, 0, n) ;//根 左边界  右边界
	lev(n-1, 0, n, 0);
	int i;
	int cnt = 0;
	for(i=0; cnt < n; i++) {
		if(level[i]) {
			if(cnt) {
				cout << " ";
			}
			cout << level[i];

			cnt ++;
		}
	}
	cout <

 

你可能感兴趣的:(PAT,二叉树)