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

ডেটা স্ট্রাকচরে প্রিফিক্স এবং পোস্টফিক্স এক্সপ্রেশন


আরিথমেটিক এক্সপ্রেশন লেখার পদ্ধতিকে নোটেশন বলা হয়। একটি আরিক প ثلاثة ভিন্ন কিন্তু সমতুল্য নোটেশনে লেখা যায়, অর্থাৎ এক্সপ্রেশনটির মূল ভাব বা আউটপুট পরিবর্তন ছাড়া। এই নোটেশনগুলো হল −

  • ইনফিক্স

  • প্রিফিক্স

  • পোস্টফিক্স

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

প্রিফিক্স নোটেশন

এই নোটেশনে, অপারেটর প্রিফিক্সড থাকে অপারেন্ডের saamনে, অর্থাৎ অপারেটর অপারেন্ডের আগে লেখা হয়। উদাহরণস্বরূপ, +ab। এটি এর ইনফিক্স নোটেশন a + b-এর সমতুল্য। প্রিফিক্স নোটেশনকে পোলিশ নোটেশন-ও বলা হয়।

পোস্টফিক্স নোটেশন

এই নোটেশন স্টাইলকে রিভার্সড পোলিশ নোটেশন বলা হয়। এই নোটেশনে, অপারেটর পোস্টফিক্সড থাকে অপারেন্ডের পরে, অর্থাৎ অপারেটর অপারেন্ডের পরে লেখা হয়। উদাহরণস্বরূপ, ab+। এটি এর ইনফিক্স নোটেশন a + b-এর সমতুল্য।

উদাহরণ

Expression NoInfix NotationPrefix NotationPostfix Notation
1a + b+ a ba b +
2(a + b) * c* + a b ca b + c *
3a * (b + c)* a + b ca b c + *
4a / b + c / d+ / a b / c da b / c d / +
5(a + b) * (c + d)* + a b + c da b + c d + *
6((a + b) * c) - d- * + a b c da b + c * d -

এক্সপ্রেশন পার্সিং

যেভাবে আলোচনা করা হয়েছে, ইনফিক্স নোটেশন পার্স করার জন্য অ্যালগরিদম বা প্রোগ্রাম ডিজাইন করা খুব দক্ষতার সাথে হয় না। বরং, এই ইনফিক্স নোটেশনগুলো প্রথমে পোস্টফিক্স বা প্রিফিক্স নোটেশনে কনভার্ট করা হয় এবং তারপর কম্পিউট করা হয়।

যেকোনো আরিক এক্সপ্রেশন পার্স করার জন্য, আমাদের অপারেটর প্রেসিডেন্স এবং অ্যাসোসিয়েটিভিটি ও ধরে রাখতে হয়।

প্রেসিডেন্স

যখন একটি অপারেন্ড দুটি ভিন্ন অপারেটরের মাঝপথে থাকে, কোন অপারেটরটি আগে অপারেন্ডটি নেবে, সেটি অপারেটরের প্রেসিডেন্স দ্বারা নির্ধারিত হয়। উদাহরণস্বরূপ −

a + b * c → a + (b * c)

যেহেতু গুণ অপারেশন যোগ অপারেশনের চেয়ে প্রেসিডেন্স পায়, b * c প্রথমে ইভ্যালুয়েট হবে। নিচে অপারেটর প্রেসিডেন্স টেবিল দেওয়া আছে।


  1. ডেটা স্ট্রাকচরে টুর্নামেন্ট ট্রি, উইনার ট্রি এবং লুজার ট্রি

  2. ডেটা স্ট্রাকচরে কম্প্রেসড কোয়াডট্রি এবং অকট্রি

  3. হাফ-এজ ডেটা স্ট্রাকচার

  4. ডেটা স্ট্রাকচরে অ্যাডাপ্টিভ মার্জিং এবং সর্টিং