সংক্ষেপে, স্ট্যাক হল স্তুপ। আর বিশদভাবে বলতে গেলে, স্ট্যাক হল কতগুলো আইটেমের এমন এক কাঠামোবদ্ধ (স্ট্রাকচারড - structured) সংগ্রহশালা (কালেকশন - collection) যেখানে নতুন আইটেমের সংযোজন (পুশ - push) বা পুরনো আইটেমের অপসারণ (পপ - pop) সংগ্রহশালার একই প্রান্তে হয়। ব্যাপারটা ঠিক বোঝা গেল না, তাই না? কোন ব্যাপার না। একটা উদাহরণ দিলেই ব্যাপারটা পরিষ্কার হয়ে যাবে।
পাঁচটা খাবার প্লেটের একটা স্তুপ (স্ট্যাক) কল্পনা করা যাক। আমরা যদি এই স্তুপে নতুন একটা প্লেট (আইটেম) সংযোজন (পুশ) করতে চাই তবে ষষ্ঠতম প্লেটটা স্তুপের একেবারে উপরে রাখতে হবে। এখন আমাদের কাছে ছয়টা প্লেটের একটা স্তুপ আছে। এবার যদি এই স্তুপ থেকে একটা প্লেট (আইটেম) অপসারণ (পপ) করতে চাই তবে ষষ্ঠতম প্লেটটাই কিন্তু অপসারণ করতে হবে। খেয়াল করলে দেখব, যে একই প্রান্তে এই কাজগুলো করছি সেটার একটা নাম দেয়া যায় – উপর বা টপ (Top)। আর এর অপর প্রান্তকে বলা যায় নিচ বা বেইস (Base)।
আমরা এই ডেটা স্ট্রাকচার কে লাস্ট-ইন-ফার্স্ট-আউট (LIFO) ডেটা স্ট্রাকচার বলে থাকি। কারণ, আমরা সবার শেষে যে আইটেমটা সংযোজন (পুশ) করছি সেটাই কিন্তু সবার আগে অপসারণ (পপ) করছি। মানে, ঢুকছে সবার শেষে কিন্তু বের হচ্ছে সবার আগে।