သစ်ပင်ဖြတ်သန်းခြင်း (ကြိုတင်မှာယူသူ၊ Inorder & Postorder)  


ခက်ခဲအဆင့် လွယ်ကူသော
မကြာခဏမေးတယ် Adobe က အမေဇုံ MAQ Oracle က Snapdeal
ဒွိသစ်ပင် သစ်ပင် သစ်ပင်လှည့်လည်

ပထမ ဦး စွာကျွန်ုပ်တို့သိရန်လိုအပ်သည် Binary Tree အတွက် Traversal ကဘာလဲ။ Traversal ဆိုသည်မှာကျွန်ုပ်တို့သည် node များအားလုံးကိုတိကျစွာတစ်နည်းနည်းနှင့်တိကျစွာတစ်ကြိမ်တည်းသွားရောက်ကြည့်ရှုသည့်နည်းလမ်းတစ်ခုဖြစ်သည်။ အခြေခံအားဖြင့်ဖြတ်သန်းမှုအမျိုးအစားနှစ်မျိုးရှိသည် ဒွိသစ်ပင်:

ကျနော်တို့ပြီးသားအဘယ်သို့သောအကြောင်းသိကြ၏ BFS ၏အယူအဆ။ ယခုကျွန်ုပ်တို့သည် Preorder, Inorder နှင့် Postorder ဖြတ်သန်းမှုကိုတွေ့ရပြီးဤလမ်းကြောင်းများသည် binary tree ၏ DFS ၏အစိတ်အပိုင်းဖြစ်သည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်သစ်ပင်အမျိုးအစားအားလုံးကိုအသေးစိတ်ကြည့်ရှုနိုင်သည်။

သစ်ပင်ဖြတ်သန်းခြင်း (ကြိုတင်မှာယူသူ၊ Inorder & Postorder)

ကြိုတင်မှာယူမှုဖြတ်သန်း  

ဤဖြတ်သန်းသွားသောလမ်းကြောင်းတွင်ကျွန်ုပ်တို့သည်လက်ရှိ node ၏အချက်အလက်များကိုပထမ ဦး ဆုံး print ထုတ်ပြီး၊ ဘယ်ဘက် subtree သို့ ဦး စွာသွားပြီးနောက်ညာဘက် subtree သို့ရွှေ့ပါ။ အထက်ပါ binary သစ်ပင်၏ကြိုတင်မှာယူမှုဖြတ်သန်းသည် 0 1 3 4 2 5 6 ။

algorithm

Algorithm: 
Preorder(root): 
Step:1 Print the data of the Node. 
Step:2 Move to the left side of the node(traverse left-subtree). 
Step:3 Move to the right side of the node(traverse right-subtree).

Inorder ဖြတ်သန်း  

ဒီဖြတ်သန်းမှုမှာပထမ ဦး ဆုံးဘယ်ဘက် subtree ကိုရွှေ့ပြီးတော့ node ရဲ့ data တွေကို print ထုတ်ပါ။ node ၏အချက်အလက်များကိုပုံနှိပ်ပြီးနောက်ညာဘက် subtree သို့ရွှေ့ပါ။ အထက်ပါ binary သစ်ပင်၏ inorder ဖြတ်သန်းသည် 1 3 4 0 2 5 6 ။

algorithm

Algorithm:  
Inorder(root): 
Step:1 Move to the left side of the node(traverse left-subtree). 
Step:2 Print the data of the Node.  
Step:3 Move to the right side of the node(traverse right-subtree).

Postorder ဖြတ်သန်း  

ဒီဖြတ်သန်းမှုမှာပထမ ဦး ဆုံးဘယ်ဘက် subtree ကိုရွှေ့ပြီးတော့ညာဘက် subtree ကိုရွှေ့ပါ။ ရွေ့လျားပြီးနောက် node ကို၏ print ထုတ်ပါ။ အထက်ပါ binary သစ်ပင်၏ postorder ဖြတ်သန်းသည် 1 3 4 2 5 6 0 ။

လည်းကြည့်ရှုပါ
Isomorphic ညှို့ Leetcode ဖြေရှင်းချက်

algorithm

Algorithm: 
Postorder(root): 
Step:1 Move to the left side of the node(traverse left-subtree). 
Step:2 Move to the right side of the node(traverse right-subtree). 
Step:3 Print the data of the Node.

အကောင်အထည်ဖော်ရေး  

/*C++ Implementation of print the Preorder, Inorder, Postorder traversal of given binary tree*/ 
#include<bits/stdc++.h> 
using namespace std; 
/*Structure of Node of BT which contain pointer to left child and right child and a data for node.*/
struct Node{
    int data;
    struct Node* left;// for left child;
    struct Node* right;// for right child;
    Node(int value)// create a node using new Node;
    {
        data=value;
        left=NULL;
        right=NULL;
    }
};
/*Function which print preorder of the given tree*/ 
void Preorder_tree(Node* root)
{
    if(root==NULL)
    {
        return;
    }
    cout<<root->data<<" ";
    Preorder_tree(root->left);
    Preorder_tree(root->right);
}
/*Function which print inorder of the given tree*/ 
void Inorder_tree(Node* root)
{
    if(root==NULL)
    {
        return;
    }
    Preorder_tree(root->left);
    cout<<root->data<<" ";
    Preorder_tree(root->right);
}
/*Function which print postorder of the given tree*/ 
void Postorder_tree(Node* root)
{
    if(root==NULL)
    {
        return;
    }
    Preorder_tree(root->left);
    Preorder_tree(root->right);
    cout<<root->data<<" ";
}
int main() 
{ 
    /*construct tree*/
    Node* root= new Node(0);//root node;
    root->left= new Node(1);
    root->right= new Node(2);
    root->left->left= new Node(3);
    root->left->right= new Node(4);
    root->right->left= new Node(5);
    root->right->right= new Node(6);
    cout<<"Preorder traversal of BT: ";
    Preorder_tree(root);cout<<"\n";
    cout<<"Inorder traversal of BT: ";
    Inorder_tree(root);cout<<"\n";
    cout<<"Postorder traversal of BT: ";
    Postorder_tree(root);cout<<"\n";
    return 0; 
}
Preorder traversal of BT: 0 1 3 4 2 5 6 
Inorder traversal of BT: 1 3 4 0 2 5 6 
Postorder traversal of BT: 1 3 4 2 5 6 0

အချိန်ရှုပ်ထွေး  

အို (N) N သည်ပေးထားသော binary tree တွင် node စုစုပေါင်းအရေအတွက်ဖြစ်သည်။

ကိုးကား