কম্পিউটার

জাভাস্ক্রিপ্টে একটি বাইনারি ট্রি উল্টানো


ধরুন, আমাদের একটি বাইনারি ট্রি এইভাবে উপস্থাপন করা হয়েছে −

      4
   /    \
  2      7
 / \    / \
1 3     6  9

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই বাইনারি গাছের মূলে নিয়ে যায় এবং এটিকে উল্টে দেয়।

এই উপরের বাইনারি গাছের উল্টানো সংস্করণটি এইরকম দেখাবে -

      4
      / \
    7    2
   / \ / \
   9 6 3 1

উদাহরণ

এর জন্য কোড হবে −

// class for a single tree node
class Node{
   constructor(val){
      this.val = val;
      this.left = null;
      this.right = null;
   };
};
// class for binary tree
class BinaryTree{
   constructor(){
      // root of the binary tree
      this.root = null;
   };
   insert = (data) => {
      // creating a new node with data
      const newNode = new Node(data);
      // if root is null, then this node will be the root
      if(this.root === null){
         this.root = newNode;
      }else{
         // otherwise we find the correct position to insert this node
         this.insertData(this.root, newNode);
      };
   };
   insertData = (node, newNode) => {
      if(newNode.val < node.val){
         if(node.left === null){
            node.left = newNode;
         }else{
            this.insertData(node.left, newNode);
         }
      }else{
         if(node.right === null){
            node.right = newNode;
         }else{
            this.insertData(node.right, newNode);
         }
      }
   };
   // function to invert the binary tree
   invert = (node) => {
      if(node === null){
         return;
      };
      [node.left, node.right] = [node.right, node.left];
      this.invert(node.right);
      this.invert(node.left);
   }
   traverse = (node) => {
      if(node === null){
         return;
      };
      this.traverse(node.right);
      console.log(node.val);
      this.traverse(node.left);
   };
};
const Tree = new BinaryTree();
Tree.insert(2);
Tree.insert(7);
Tree.insert(4);
Tree.insert(1);
Tree.insert(9);
Tree.insert(3);
Tree.insert(6);
// original right to left traversal
Tree.traverse(Tree.root);
Tree.invert(Tree.root);
console.log('after inversion');
// traversal right to left after inversion
Tree.traverse(Tree.root);
এর পরে বাম

আউটপুট

এবং কনসোলে আউটপুট হবে −

9
7
6
4
3
2
1
after inversion
1
2
3
4
6
7
9

  1. C++ এ বাইনারি ট্রির সীমানা

  2. C++ এ N-ary Tree থেকে Binary Tree এনকোড করুন

  3. C++ এ বাইনারি ট্রি ক্যামেরা

  4. পাইথনে বাইনারি ট্রি প্রিঅর্ডার ট্রাভার্সাল