একটি বিশুদ্ধ স্ট্যাক কেবল অনুমোদিত অপারেশন হয় Push
, Pop
এবং Peek
কিন্তু বাস্তব পদ, যে ঠিক সত্য নয়। বা বরং, Peek
অপারেশনটি আপনাকে প্রায়শই স্ট্যাকের যে কোনও অবস্থানের দিকে নজর দিতে দেয় তবে ধরা পড়ে এটি স্ট্যাকের এক প্রান্তের সাথে সম্পর্কিত।
সুতরাং, অন্যরা যেমন বলেছে, একটি অ্যারেটি এলোমেলো অ্যাক্সেস এবং সবকিছু অ্যারের শুরুতে উল্লেখ করা হয় ।
একটি স্ট্যাকের মধ্যে, আপনি কেবল স্ট্যাকের কার্যপ্রান্তে যুক্ত / সরিয়ে ফেলতে পারবেন, তবে আপনার কাছে এখনও এলোমেলো অ্যাক্সেস পড়তে পারে তবে এটি কার্যকরী প্রান্তের সাথে সম্পর্কিত । এটিই মূল পার্থক্য।
উদাহরণস্বরূপ, আপনি যখন কোনও ফাংশনে স্ট্যাকের উপর প্যারামিটারগুলি পাস করেন, কলিগুলিকে সেগুলি দেখার জন্য প্যারামিটারগুলি পপ করতে হবে না। এটি কেবল স্ট্যাকের উপর স্থানীয় ভেরিয়েবলগুলিকে ঠেলে দেয় এবং স্ট্যাক পয়েন্টার থেকে একটি অফসটের উপর ভিত্তি করে সমস্ত স্থানীয় ভেরিয়েবল এবং পরামিতিগুলি উল্লেখ করে। আপনি যদি কেবল একটি অ্যারে ব্যবহার করে থাকেন, তবে কলি তার পরামিতিগুলি কোথায় সন্ধান করবেন তা কীভাবে জানবে? কলিটি সম্পন্ন হয়ে গেলে, এটি তার স্থানীয় ভেরিয়েবলগুলি পপ করে দেয়, একটি ফেরতের মানকে ঠেলে দেয়, কলারের কাছে নিয়ন্ত্রণ ফিরে দেয় এবং কলার রিটার্ন মানটি (যদি কোনও হয়) পপ করে এবং তারপরে স্ট্যাকের বাইরে প্যারামিটারগুলি পপ করে। সৌন্দর্যটি হ'ল এটি আপনার ফাংশন কলগুলিতে (যতক্ষণ না আপনি স্ট্যাকের জায়গাগুলি কমিয়ে দিচ্ছেন না) ধরে নেওয়া যতই বাজে।
এটি একটি বিশেষ ব্যবহার / বাস্তবায়ন, তবে এটি পার্থক্যটি চিত্রিত করে: অ্যারে সর্বদা শুরু থেকেই রেফারেন্স করা হয় তবে স্ট্যাকগুলি সর্বদা কিছু কার্যকারী অবস্থান থেকে রেফারেন্স করা হয়।
স্ট্যাকের একটি সম্ভাব্য বাস্তবায়ন হ'ল একটি অ্যারে প্লাস একটি সূচক যা স্মরণ রাখে কর্মের শেষটি ।