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

জাভাতে বাইনারি ট্রির অড লেভেল এবং ইভেন লেভেল নোডগুলোর যোগফলের পার্থক্য

সমস্যা বিবরণ

একটি বাইনারি ট্রি দেওয়া আছে। রুট লেভেল ১ (অড লেভেল), রুটের লেফট/রাইট চাইল্ড লেভেল ২ (ইভেন লেভেল) এবং এভাবেই ক্রমাগত। অড লেভেল এবং ইভেন লেভেলে থাকা নোডগুলোর যোগফলের পার্থক্য বের করতে হবে।

উদাহরণ

        5 
       / \ 
      2   6 
     / \   \ 
    1   4   8 
   /     / \ 
  3     7   9 
Sum of nodes at odd level = 5 + 1 + 4 + 8 = 18 
Sum of nodes at even level = 2 + 6 + 3 + 7 + 9 = 27 
Difference = -9

সমাধান

Recursive Traversal ব্যবহার করা হয়েছে। ট্র্যাভার্সালের সময় রুট নোড এবং এর লেফট ও রাইট চাইল্ডের পার্থক্য রিটার্ন করা হয়।

জাভা প্রোগ্রাম উদাহরণ

class Node { 
    int data; 
    Node left, right; 
    Node(int data){ 
        this.data = data; 
        this.left = this.right = null; 
    } 
} 
public class JavaTester { 
    public static Node getTree(){ 
        Node root = new Node(5); 
        root.left = new Node(2); 
        root.right = new Node(6); 
        root.left.left = new Node(1); 
        root.left.right = new Node(4); 
        root.left.right.left = new Node(3); 
        root.right.right = new Node(8); 
        root.right.right.right = new Node(9); 
        root.right.right.left = new Node(7); 
        return root; 
    } 
    public static int difference(Node node){ 
        if(node == null) return 0; 
        return node.data - difference(node.left) - difference(node.right); 
    } 
    public static void main(String args[]){ 
        Node tree = getTree(); 
        System.out.println(difference(tree)); 
    } 
}

আউটপুট

-9
  1. জাভাতে TreeSet এবং HashSet-এর পার্থক্য

  2. জাভাতে Iterator এবং Enumeration-এর পার্থক্য

  3. জাভাতে ArrayList এবং HashSet-এর পার্থক্য

  4. পাইথনে বিষম ও জোড় অঙ্কগুলোর যোগফলের পার্থক্য বের করার প্রোগ্রাম