PAT A 1102. Invert a Binary Tree (25)
来源:互联网 发布:jenkins python pdf 编辑:程序博客网 时间:2024/06/05 18:30
用静态链表建树,然后只要交换两个元素的值就反转了。
#include <cstdio>#include <string>#include <vector>#include <algorithm>#include <queue>#include <iostream>using namespace std;vector<int> child[11],bfs,infs;bool root[11]={false};queue<int> Q;void invert(const int &n){for(int i=0;i<n;++i){swap(child[i][0],child[i][1]);}}void BFS(const int &root){Q.push(root);while(!Q.empty()){int q=Q.front();Q.pop();bfs.push_back(q);if(child[q][0]!=-1)Q.push(child[q][0]);if(child[q][1]!=-1)Q.push(child[q][1]);}}void INFS(const int &root){if(root!=-1){INFS(child[root][0]);infs.push_back(root);INFS(child[root][1]);}}int find_root(const int &n){for(int i=0;i<n;++i)if(!root[i])return i;}int main(void){//freopen("in.log","r",stdin);int n;cin>>n;for(int i=0;i<n;++i){string tmpl,tmpr;cin>>tmpl>>tmpr;if(tmpl!="-"){int l=stoi(tmpl);child[i].push_back(l);root[l]=true;}else{child[i].push_back(-1);}if(tmpr!="-"){int r=stoi(tmpr);child[i].push_back(r);root[r]=true;}else{child[i].push_back(-1);}}invert(n);int btree=find_root(n);BFS(btree);INFS(btree);int i=0;for(int c:bfs){(i++)?cout<<" "<<c:cout<<c;}cout<<endl;int j=0;for(int c:infs){(j++)?cout<<" "<<c:cout<<c;}cout<<endl;return 0;}
阅读全文
1 0
- [PAT]1102. Invert a Binary Tree (25)
- 【PAT】1102. Invert a Binary Tree (25)
- PAT 1102. Invert a Binary Tree (25)
- PAT 1102. Invert a Binary Tree (25)
- pat 1102. Invert a Binary Tree (25)
- PAT 1102. Invert a Binary Tree (25)
- 【PAT】1102. Invert a Binary Tree (25)
- PAT 1102. Invert a Binary Tree (25)
- PAT 1102. Invert a Binary Tree (25)
- PAT(A) - 1102. Invert a Binary Tree (25)
- PAT(A)-1102. Invert a Binary Tree (25)(数据结构+bfs)
- PAT A 1102. Invert a Binary Tree (25)
- Pat(A) 1102. Invert a Binary Tree (25)
- PAT--1102. Invert a Binary Tree
- 【PAT】1102. Invert a Binary Tree
- PAT A1102. Invert a Binary Tree (25)
- 1102. Invert a Binary Tree (25)-PAT甲级真题
- 1102. Invert a Binary Tree (25) PAT甲级
- 笔试编程题
- bzoj 1618: [Usaco2008 Nov]Buying Hay 购买干草(完全背包)
- 一个 Yii + vue 项目(1)
- Lockdep定位linux驱动死锁的bug
- 《七大排序算法》(七)之快速排序(Java实现)
- PAT A 1102. Invert a Binary Tree (25)
- 用Android Studio编写java程序
- 对xgboost学习的一些梳理
- Educational Codeforces Round 27 B. Luba And The Ticket(模拟)
- LinqToXml
- 第一行代码 第九章 网络技术
- pylogin系列之搞定百度统计
- python中的sum函数.sum(axis=1)
- 83. remove duplicates from sorted list