遍历二叉搜索树习题
来源:互联网 发布:生产工艺过程演示软件 编辑:程序博客网 时间:2024/06/06 01:19
遍历二叉搜索树习题
PAT A1043
输入1
78 6 5 7 10 8 11
输出1
YES5 7 6 8 11 10 8
输入2
78 10 11 8 6 7 5
输出2
YES11 8 10 7 5 6 8
输入3
78 6 8 5 10 9 11
输出3
NO
#include <iostream>#include <cstdio>#include <cstdlib>#include <vector>#include <algorithm>using namespace std;struct node{ int data; node* left,*right;};void insert(node* &root,int data){ if(root==NULL) { root=new node; root->data=data; root->left=root->right=NULL; return; } if(data < root->data) { insert(root->left,data); } else { insert(root->right,data); }}void preorder(node* root,vector<int>&vi){ if(root == NULL) { return; } vi.push_back(root->data); preorder(root->left,vi); preorder(root->right,vi);}void preorder_mirror(node* root,vector<int>&vi){ if(root==NULL) { return; } vi.push_back(root->data); preorder_mirror(root->right,vi); preorder_mirror(root->left,vi);}void postorder(node* root,vector<int>&vi){ if(root==NULL) { return; } postorder(root->left,vi); postorder(root->right,vi); vi.push_back(root->data);}void postorder_mirror(node* root,vector<int>& vi){ if(root==NULL) { return; } postorder_mirror(root->right,vi); postorder_mirror(root->left,vi); vi.push_back(root->data);}//origin 存放初始序列//pre、post为先序、后序,pre_m、post_m为镜像树先序、后序vector<int> origin,pre,pre_m,post,post_m;int main(){ int n,data; node* root=NULL; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&data); origin.push_back(data); insert(root,data); } preorder(root,pre); preorder_mirror(root,pre_m); postorder(root,post); postorder_mirror(root,post_m); if(origin==pre) { printf("YES\n"); for(auto x:post) { printf("%d ",x); } } else if(origin == pre_m) { printf("YES\n"); for(auto x:post_m) { printf("%d ",x); } } else { printf("NO\n"); } return 0;}
阅读全文
0 0
- 遍历二叉搜索树习题
- 二叉搜索树的遍历
- 二叉搜索树的遍历
- 二叉搜索树的遍历
- 二叉搜索树的习题 pta
- 二叉搜索树的创建和遍历
- Sicily 3702. 二叉搜索树的遍历
- 二叉树的遍历以及搜索
- BST(二叉搜索树)按层遍历
- 二叉搜索树的后续遍历序列
- 二叉搜索树的后序遍历
- 二叉搜索树的创建及其遍历
- 二叉搜索树的后序遍历
- 二叉搜索树的后续遍历序列
- 二叉搜索树的后序遍历
- 二叉搜索树的后续遍历序列
- 二叉搜索树的后续遍历序列
- 二叉搜索树的后序遍历
- 解决ie8兼容性,弹出层遮罩背景不透明问题
- Android系统
- UE4 button插件,简单的把Max Transform 转换 然后在关卡中生成模型
- java调用Apache OpenOffice实现TXT、HTML、OFFICE转PDF
- php redis extension
- 遍历二叉搜索树习题
- spring mvc返回json数据的三种方式
- ES6-对象的扩展-属性的简介表示法
- 【c程序】C语言编码规范
- tp5做无刷新分页
- 利用Git GUI来使用GitHub远程仓库
- 解决一类极大子矩形问题(悬线法)
- vue的结构
- Spring中@Component的作用