*浙大PAT甲级 1099层次遍历二叉查找树
2016-09-07 16:00
337 查看
先通过输入进行建树,然后根据中序遍历对应从小到大的数,再进行bfs进行层次遍历。
AC代码:
#include<iostream>
#include<map>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
#include<set>
#include<stack>
#include<cmath>
#include<vector>
#include<hash_map>
#define ll long long
#define inf 24*60*60
using namespace std;
struct node
{
int l=-1;
int r=-1;
int data;
};
node a[105];
int num[105];
int shu=0;
void f(int x)
{
if(x==-1)
return;
f(a[x].l);
num[shu++]=x;
f(a[x].r);
}
void bfs(int x)
{
queue<node> q;
q.push(a[x]);
printf("%d",a[x].data);
while(!q.empty())
{
node tmp=q.front();
q.pop();
if(tmp.l!=-1)
{
printf(" %d",a[tmp.l].data);
q.push(a[tmp.l]);
}
if(tmp.r!=-1)
{
printf(" %d",a[tmp.r].data);
q.push(a[tmp.r]);
}
}
}
int b[105];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d %d",&a[i].l,&a[i].r);
}
for(int i=0;i<n;i++)
{
scanf("%d",&b[i]);
}
sort(b,b+n);
f(0);
for(int i=0;i<n;i++)
{
a[num[i]].data=b[i];
}
bfs(0);
}
AC代码:
#include<iostream>
#include<map>
#include<cstdio>
#include<algorithm>
#include<queue>
#include<cstring>
#include<set>
#include<stack>
#include<cmath>
#include<vector>
#include<hash_map>
#define ll long long
#define inf 24*60*60
using namespace std;
struct node
{
int l=-1;
int r=-1;
int data;
};
node a[105];
int num[105];
int shu=0;
void f(int x)
{
if(x==-1)
return;
f(a[x].l);
num[shu++]=x;
f(a[x].r);
}
void bfs(int x)
{
queue<node> q;
q.push(a[x]);
printf("%d",a[x].data);
while(!q.empty())
{
node tmp=q.front();
q.pop();
if(tmp.l!=-1)
{
printf(" %d",a[tmp.l].data);
q.push(a[tmp.l]);
}
if(tmp.r!=-1)
{
printf(" %d",a[tmp.r].data);
q.push(a[tmp.r]);
}
}
}
int b[105];
int main()
{
int n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d %d",&a[i].l,&a[i].r);
}
for(int i=0;i<n;i++)
{
scanf("%d",&b[i]);
}
sort(b,b+n);
f(0);
for(int i=0;i<n;i++)
{
a[num[i]].data=b[i];
}
bfs(0);
}
相关文章推荐
- JAVA eclipse中断点调试的常用快捷键
- Spring Security理解以及案例
- Struts2基础之概述
- Js中&&和||的运用
- Java菜鸟逆袭之基础语法上
- 创建后台与模块权限控制
- 【最短路】【数学】CSU 1806 Toll (2016湖南省第十二届大学生计算机程序设计竞赛)
- iOS崩溃报告获取一
- NOIP2009 潜伏者
- 利用php的register_shutdown_function来记录php的输出日志
- php的$_FILES的临时储存文件与回收机制实测过程
- ViewPager + RecyclerView的显示问题
- Windows 2008 R2 做RMAN定时自动备份;日期格式影响日志文件生成
- nginx+php5
- Idea项目基本配置
- 用freemarker+xml生成word
- 【最短路】【数学】CSU 1806 Toll (2016湖南省第十二届大学生计算机程序设计竞赛)
- Node.js与npm安装(转载)
- qt this does not seem to be a debug build setting
- scala调用jdbc连接数据库