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

C++-এ ইনঅর্ডার ও প্রিঅর্ডার ট্রাভার্সাল থেকে ট্রি নির্মাণ

আমাদের একটি বাইনারি ট্রির ইনঅর্ডার (Inorder) এবং প্রিঅর্ডার (Preorder) ট্রাভার্সাল দেওয়া আছে। লক্ষ্য হলো এই ট্রাভার্সালগুলো থেকে মূল ট্রি tái নির্মাণ করা।

ট্রাভার্সাল সংজ্ঞা

Inorder: লেফট সাবট্রি -> রুট -> রাইট সাবট্রি।

Preorder: রুট -> লেফট সাবট্রি -> রাইট সাবট্রি।

উদাহরণ

নিচের ট্রির (চিত্রে) ইনঅর্ডার ও প্রিঅর্ডার:

Inorder: 2-3-4-5-6-8-10
Preorder: 4-3-2-5-8-6-10

এখন নতুন ট্রি তৈরি করতে হবে:

Inorder: 2-3-4-5-6-8-10
Preorder: 5-3-2-4-8-6-10

নির্মাণ পদ্ধতি

  1. Preorder-এ প্রথম ভ্যালু সবসময় রুট। এখানে ৫ রুট।
  2. Inorder-এ ৫-এর বামপাশের ভ্যালুগুলো (2-3-4) লেফট সাবট্রি, ডানপাশের (6-8-10) রাইট সাবট্রি।
  3. লেফট সাবট্রির জন্য: Preorder (3-2-4) -> রুট ৩। Inorder (2-3-4) -> ৩-এর বামে ২, ডানে ৪।
  4. রাইট সাবট্রির জন্য: Preorder (8-6-10) -> রুট ৮। Inorder (6-8-10) -> ৮-এর বামে ৬, ডানে ১০।
  5. এভাবে রিকার্সিভলি পুরো ট্রি তৈরি করা যায়।

চিত্রগুলো الأصلية ট্রি নির্মাণের ধাপে ধাপে প্রক্রিয়া দেখাচ্ছে।

  1. পাইথনে পোস্টঅর্ডার থেকে বাইনারি সার্চ ট্রি তৈরি করুন

  2. পাইথনে প্রिअর্ডার এবং পোস্টঅর্ডার ট্রাভার্সাল থেকে বাইনারি ট্রি কনস্ট্রাক্ট করুন

  3. পাইথনে ইনঅর্ডার এবং পোস্টঅর্ডার ট্রাভার্সাল থেকে বাইনারি ট্রি কনস্ট্রাক্ট করা

  4. পাইথনে প্রिअর্ডার এবং ইনঅর্ডার ট্রাভার্সাল থেকে বাইনারি ট্রি কনস্ট্রাক্ট করা