
Introduction To Stacks -(স্ট্যাক পরিচিতি)
স্ট্যাক হচ্ছে একধরণের অ্যাবসট্র্যাক ডাটা টাইপ(ADT)। স্ট্যাক কম্পিউটার সায়েন্সের একপ্রকার ডাটা স্ট্রাকচার যা বাস্তব জীবনের স্ট্যাকের(স্তুপ) সাথে মিল রেখে নামকরণ করা হয়েছে।
চলুন আমরা রিয়েল ওয়ার্ল্ড কিছু চিত্র দেখি-
প্রথম চিত্রে আমরা একটি বইয়ের স্তুপ দেখতে পাচ্ছি আর দ্বিতীয় চিত্রে আমরা একটি রিং এর স্তুপ দেখতে পাচ্ছি। উভয় ক্ষেত্রেই আমরা যদি কিছু পরিবর্তন করতে চাই, তবে সর্বশেষ বই বা সর্বশেষ রিং টাকেই তুলতে হবে। অর্থাৎ সর্বশেষে যে বইটা বা রিংটা থাকবে সেটাকে অ্যাকসেস করার আগে আমরা বাকিগুলো অ্যাকসেস করতে পারিনা।
তাই স্ট্যাক হচ্ছে এমন একটি ডাটা স্ট্রাকচার যা সর্বশেষ ইলিমেন্ট বা উপাদানকে শুধুমাত্র অ্যাকসেস করতে পারে। তাই এটাকে বলা হয় Last-In-First-Out (LIFO)।
স্ট্যাকে চারটি অপারেশন বা কাজ হয়ে থাকে:
- push() [ডাটা একটা লিস্টে পুশ করা হয়]
- pop() [লিস্টের সর্বশেষ ডাটাকে ডিলিট বা বাদ দেওয়া হয়]
- top()[লিস্টের সর্বশেষ উপাদানই টপ]
- empty()[লিস্ট খালি কিনা এটা চেক করা হয়]
উপরের এই চারটি অপারেশনে করতেই কন্সট্যান্স টাইম প্রয়োজন (যেহেতু, সবসময় সর্বশেষ উপাদানকে নিয়ে কাজ করে]। অর্থাৎ স্ট্যাকের টাইম কমপ্লিক্সিটি O(1)। Stack কে নিচের চিত্রের সাহায্যে সাধারণত রিপ্রেজেন্ট করা হয়:
এখানে সর্বশেষ ভ্যালু হচ্ছে Value-3 । তাই এটা এখানে top()। এখন যদি এখানে push() অপারেশন করে Value-4 লিস্টে ইনপুট নেওয়া হয়, তবে top() হবে value-4 ।
যদি লিস্টের সর্বশেষ উপাদান অর্থাৎ top()= value-3 হয়, তবে pop() অপারেশন করলে top() হবে Value-2 । কারণ pop() অপারেশনের মাধ্যমে সর্বশেষ উপাদানকে বাদ দেওয়া হয়েছে।
আমাদের পরবর্তী টিউটোরিয়ালে আমরা দেখবো কিভাবে স্ট্যাক ইমপ্লিমেন্ট করতে হয়। ধন্যবাদ সাথে থাকার জন্য.
Author: MSI Shafik
(পোস্ট পড়ার পর কেমন লাগল সেটা কমেন্ট সেকশনে জানিয়ে দেবেন)
Leave a reply