কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে বাইনারি ট্রি ইনভার্ট করা

মান লিয়ে, আমাদের একটি বাইনারি ট্রি আছে যেটি এভাবে রিপ্রেজেন্ট করা হয়েছে -

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

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

উপরের বাইনারি ট্রির ইনভার্টেড ভার্সন হবে -

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

উদাহরণ

// সিঙ্গেল ট্রি নোডের জন্য ক্লাস 
class Node{ 
  constructor(val){ 
    this.val = val; 
    this.left = null; 
    this.right = null; 
  }; 
}; 
// বাইনারি ট্রির জন্য ক্লাস 
class BinaryTree{ 
  constructor(){ 
    this.root = null; 
  }; 
  insert = (data) => { 
    const newNode = new Node(data); 
    if(this.root === null){ 
      this.root = newNode; 
    } else { 
      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); 
      } 
    } 
  }; 
  // বাইনারি ট্রি ইনভার্ট করার ফাংশন 
  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); 
// মূল রাইট-টু-লেফট ট্রাভার্সাল 
Tree.traverse(Tree.root); 
Tree.invert(Tree.root); 
console.log('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 ট্রিকে বাইনারি ট্রিতে এনকোড এবং ডিসিরিয়ালাইজ করা

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

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