Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma GCC optimize ("O3")
- #pragma GCC target ("sse4")
- #include <bits/stdc++.h>
- using namespace std;
- /*3 2 4 1 5
- 3
- / \
- 2 4
- / \
- 1 5
- */
- typedef long long ll;
- typedef pair<int, int> pii;
- typedef pair<string,int> psi;
- typedef unordered_map<int,int> mii;
- typedef unordered_map<long long,long long> mll;
- typedef unordered_map<string,int> msi;
- typedef unordered_map<char,int> mci;
- typedef unordered_set<int> si;
- typedef unordered_set<long long> sll;
- typedef unordered_set<string> ss;
- typedef unordered_set<char> sc;
- typedef map<int,int> ormii;
- typedef map<long long,long long> ormll;
- typedef map<string,int> ormsi;
- typedef map<char,int> ormci;
- typedef set<int> orsi;
- typedef set<long long> orsll;
- typedef set<string> orss;
- typedef set<char> orsc;
- typedef vector<int> vi;
- typedef vector<string> vs;
- typedef vector<char> vc;
- typedef vector<ll> vll;
- typedef vector<vector<int>> vvi;
- typedef vector<vector<string>> vvs;
- typedef vector<vector<ll>> vvll;
- #define FOR(i, a, b) for (auto i=a; i<=(b); i++)
- #define FORd(i,b,a) for (int i =b; i >= a; i--)
- #define sortinc(v) sort(v.begin(),v.end())
- #define sortdec(v) sort(v.rbegin(),v.rend())
- #define sz(x) (int)(x).size()
- #define mp make_pair
- #define pb push_back
- #define pob pop_back
- #define pf push_front
- #define pof pop_front
- #define fi first
- #define se second
- #define ins insert
- const int MOD = 1000000007;
- //type functions here
- class Node
- {
- public:
- Node* left;
- Node* right;
- int data;
- Node(int d)
- {
- data=d;
- left=NULL;
- right=NULL;
- }
- };
- void LevelOrder(Node* head)
- {
- queue<Node*> q;
- q.push(head);
- int z=1;
- while(!q.empty())
- {
- int sizee=sz(q);
- FOR(i,1,sizee)
- {
- Node* temp=q.front();
- q.pop();
- cout<<temp->data<<" ";
- //cout<<z<<" ";
- if(z%2!=0){
- if(temp->left) q.push(temp->left);
- if(temp->right) q.push(temp->right);
- }
- else
- {
- if(temp->right) q.push(temp->right);
- if(temp->left) q.push(temp->left);
- }
- }
- z++;
- //cout<<endl;
- }
- }
- Node* insert(Node* head,int d)
- {
- if(head==NULL) return new Node(d);
- if(d<head->data)
- {
- head->left=insert(head->left,d);
- }
- else
- {
- head->right=insert(head->right,d);
- }
- return head;
- }
- int main() {
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- int tc=1;
- cin>>tc;
- FOR(w,1,tc)
- {
- Node* head=NULL;
- int n;
- cin>>n;
- while(n)
- {
- int temp;
- cin>>temp;
- head=insert(head,temp) ;
- n--;
- }
- LevelOrder(head);
- cout<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement