কম্পিউটার

জাভাতে একটি বাইনারি ট্রির বিজোড় স্তর এবং জোড় স্তরের নোডের যোগফলের মধ্যে পার্থক্য


সমস্যা বিবৃতি

একটি প্রদত্ত বাইনারি ট্রি দিয়ে, বিজোড় স্তর এবং জোড় স্তরে নোডের যোগফলের মধ্যে পার্থক্য খুঁজে বের করার জন্য একটি প্রোগ্রাম লিখুন। লেভেল 1-এ রুট ধরুন, লেভেল 2-এ রুটের বাম/ডান সন্তান এবং আরও অনেক কিছু।

উদাহরণ

 5 / \ 2 6 / \ \ 1 4 8 / / \ 3 7 9বিজোড় স্তরে নোডের যোগফল=5 + 1 + 4 + 8=18 জোড় স্তরে নোডের যোগফল=2 + 6 + 3 + 7 + 9 =27 পার্থক্য =-9।

সমাধান

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

উদাহরণ

প্রয়োজনীয় আউটপুট খুঁজে পেতে জাভাতে প্রোগ্রামটি নিম্নরূপ।

<প্রি>ক্লাস নোড { int ডেটা; নোড বাম, ডান; নোড(int data){ this.data =data; this.left =this.right =null; }} পাবলিক ক্লাস জাভা টেস্টার { পাবলিক স্ট্যাটিক নোড getTree(){ Node root =new Node(5); root.left =নতুন নোড(2); root.right =নতুন নোড(6); root.left.left =নতুন নোড(1); root.left.right =নতুন নোড(4); root.left.right.left =নতুন নোড(3); root.right.right =নতুন নোড(8); root.right.right.right =নতুন নোড(9); root.right.right.left =নতুন নোড(7); রিটার্ন রুট; } পাবলিক স্ট্যাটিক int পার্থক্য(নোড নোড){ if(node ​​==null) রিটার্ন 0; রিটার্ন node.data - পার্থক্য(node.left) - পার্থক্য(node.right); } পাবলিক স্ট্যাটিক ভ্যাইড মেইন(স্ট্রিং আর্গস[]){ নোড ট্রি =getTree(); System.out.println(পার্থক্য(বৃক্ষ)); }}

আউটপুট

-9

  1. জাভাতে ট্রি সেট এবং হ্যাশ সেটের মধ্যে পার্থক্য

  2. জাভাতে ইটারেটর এবং গণনার মধ্যে পার্থক্য

  3. জাভাতে অ্যারেলিস্ট এবং হ্যাশসেটের মধ্যে পার্থক্য

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