কম্পিউটার

ডেটা স্ট্রাকচারে একটি এক্সপ্রেশন ট্রি তৈরি করার জন্য অ্যালগরিদম


এক্সপ্রেশন ট্রি

এক্সপ্রেশন ট্রি হল সেইগুলি যেগুলিতে লিফ নোডগুলির মানগুলি পরিচালনা করা হয় এবং অভ্যন্তরীণ নোডগুলিতে সেই অপারেটর থাকে যার উপর পাতার নোডটি সঞ্চালিত হবে৷

উদাহরণ

4 + (7 + 9) * 2) নিম্নরূপ একটি এক্সপ্রেশন ট্রি থাকবে

ডেটা স্ট্রাকচারে একটি এক্সপ্রেশন ট্রি তৈরি করার জন্য অ্যালগরিদম

একটি এক্সপ্রেশন ট্রি নির্মাণের অ্যালগরিদম

টি-কে এক্সপ্রেশন ট্রি হতে দিন।

If T is not NULL:

   If T->data is an operand:

      return T.data

   A = solve(T.left)

   B = solve(T.right)

   --> Calculate operator for 'T.data' on A and B, and call recursively,

      return calculate(A, B, T.data)

কিভাবে একটি এক্সপ্রেশন ট্রি তৈরি করবেন?

প্রদত্ত অভিব্যক্তির জন্য একটি এক্সপ্রেশন ট্রি তৈরি করতে, আমরা সাধারণত স্ট্যাক ডেটা স্ট্রাকচার ব্যবহার করি।

প্রাথমিকভাবে আমরা প্রদত্ত পোস্টফিক্স এক্সপ্রেশনের উপর পুনরাবৃত্তি করি এবং নীচে দেওয়া পদক্ষেপগুলি অনুসরণ করি -

  • যদি আমরা প্রদত্ত এক্সপ্রেশনে একটি অপারেন্ড পাই, তাহলে এটিকে স্ট্যাকের মধ্যে পুশ করুন। এটি অভিব্যক্তি গাছের মূলে পরিণত হবে।
  • যদি কোনো অপারেটর এক্সপ্রেশনে দুটি মান পায়, তাহলে এক্সপ্রেশন ট্রিতে তার চাইল্ড হিসেবে যোগ করুন এবং সেগুলোকে বর্তমান নোডে পুশ করুন।
  • প্রদত্ত অভিব্যক্তিটি সম্পূর্ণ না হওয়া পর্যন্ত ধাপ-1 এবং ধাপ-2 পুনরাবৃত্তি করুন।
  • এখন পরীক্ষা করুন যে প্রতিটি রুট নোডে অপারেন্ড ছাড়া আর কিছুই নেই এবং প্রতিটি চাইল্ড নোডে শুধুমাত্র মান রয়েছে।

  1. ডাটা স্ট্রাকচারে বাইনারি ট্রি এডিটি

  2. ডেটা স্ট্রাকচারে BSP গাছ

  3. ডেটা স্ট্রাকচারে গাছের পরিসর

  4. ডাটা স্ট্রাকচারে ভার্চুয়াল ট্রিতে খেলা