大家好,我是Joseph,今天给大家推荐一些二叉树题目。
题目
二叉树存储
这道题是道水题,找找规律ok,本人代码10行。
淘汰赛
这道题推荐使用桶数组 做比较合适(就是有点绕)。
二叉树深度
这题是一道深搜题,但相对比较简单。
遍历的顺序
前序遍历
也是很水的一道题,给一个代码框架:
#include<iostream>
using namespace std;
int n;
struct node{
int l,r;
char z;
}ans[10001];
void dfs(int i){
if(i!=0){
cout<<ans[i].z;
dfs( );//这里要填!
dfs( );//这里要填!
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>ans[i].z>>ans[i].l>>ans[i].r;
dfs( );//这里要填!
return 0;
}
中序遍历
提示一下,改个顺序……
后序遍历
也是在前序遍历里改一下就行了。
子数的大小
也许抓住了规律,真想也就大白了?
结点的查找
找到第k层的左子节点和右节点,再判断三种情况就行了。
总结
这次的题单以找规律和dfs为主,考察了对树的了解程度,不是很难,和CSP-J差一些,下次会出一点难的。
注:此问为我朋友所写,侵权必删(我没看)。