স্ট্যাকগুলি বিস্তৃত ব্যবহারের সাথে একটি গুরুত্বপূর্ণ ডেটা কাঠামো।
প্রোগ্রামিং-এ, স্ট্যাকগুলি আপনাকে লাস্ট-ইন, ফার্স্ট-আউট (LIFO) অর্ডারে ডেটা সংরক্ষণ করতে দেয়। এর মানে হল যে একটি স্ট্যাকে সংরক্ষিত শেষ আইটেমটি প্রথমটি প্রক্রিয়া করা হবে।
কিন্তু কিভাবে আপনি পাইথনে একটি স্ট্যাক তৈরি করবেন? এটি সেই প্রশ্ন যা আমরা এই নির্দেশিকায় উত্তর দিতে যাচ্ছি। এই নির্দেশিকাটি পড়ার শেষে, আপনি পাইথনে স্ট্যাক তৈরি এবং কাজ করার ক্ষেত্রে একজন বিশেষজ্ঞ হয়ে উঠবেন।
পাইথন স্ট্যাকস
স্ট্যাক লাস্ট-ইন, ফার্স্ট-আউট (LIFO) ক্রমে ডেটা সঞ্চয় করে।
এই অর্ডারটি কীভাবে কাজ করে তা বোঝার জন্য, প্লেটের একটি স্ট্যাক বিবেচনা করুন। যখন আপনার কাছে পরিষ্কার করার জন্য প্লেটের স্তুপ থাকে, তখন আপনি যে প্রথম প্লেটটি সরিয়ে নেবেন সেটি হল উপরের দিকে। তারপরে, আপনি প্লেটগুলি সরানোর সাথে সাথে, আপনি স্ট্যাকের নীচের অংশগুলি অ্যাক্সেস করতে সক্ষম হবেন।
স্ট্যাকগুলি পাইথনে সারিগুলির বিপরীত। সারিগুলি সর্বনিম্ন সম্প্রতি যোগ করা আইটেমটি সরিয়ে দেয় (কারণ তারা প্রথম-ইন, প্রথম-আউট কাঠামো ব্যবহার করে), যেখানে স্ট্যাকগুলি সাম্প্রতিক যোগ করা আইটেমগুলিকে সরিয়ে দেয় (কারণ তারা শেষ-ইন, প্রথম-আউট কাঠামো ব্যবহার করে)।
স্ট্যাকগুলি সাধারণত দুটি অপারেশন সমর্থন করে:পুশ এবং পপ। পুশিং আপনাকে স্ট্যাকের শীর্ষে একটি আইটেম যুক্ত করতে দেয় এবং পপিং আপনাকে স্ট্যাকের শীর্ষে থাকা আইটেমটিকে সরাতে দেয়।
পাইথনে, স্ট্যাক তৈরি করতে আপনি দুটি প্রধান পদ্ধতি ব্যবহার করতে পারেন:বিল্ট-ইন তালিকা ব্যবহার করে এবং collections.deque()
ব্যবহার করে ক্লাস আসুন এই পদ্ধতিগুলির প্রতিটি কীভাবে কাজ করে তা ভেঙে দেওয়া যাক।
81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷
৷গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় ব্যয় করেছে।
পাইথন বিল্ট-ইন তালিকা
অন্তর্নির্মিত তালিকা ডেটা টাইপ আপনাকে পাইথনে একটি স্ট্যাক তৈরি করতে দেয়।
যেহেতু পাইথন তালিকাগুলি অ্যারে হিসাবে প্রয়োগ করা হয়েছে, আপনি সহজে আইটেমগুলি যোগ করতে এবং সরাতে পারেন। উপরন্তু, আপনি যে ক্রমে একটি তালিকায় মান সন্নিবেশ করান তা সংরক্ষিত থাকবে, যার মানে হল যে আপনি একটি তালিকার প্রথম এবং শেষ আইটেমগুলি সহজেই সরাতে পারবেন।
ধরুন আমরা একটি স্ট্যাক তৈরি করতে চাই যা একটি ক্লাসে হোমওয়ার্ক অ্যাসাইনমেন্টের একটি তালিকা সংরক্ষণ করে। শিক্ষক এই অ্যাসাইনমেন্টগুলিকে স্তূপে প্রদর্শিত ক্রম অনুসারে গ্রেড করতে চান (তাই, প্রথমে দেওয়া অ্যাসাইনমেন্টটি স্ট্যাকের নীচে থাকবে এবং শেষ দেওয়া অ্যাসাইনমেন্টটি স্ট্যাকের শীর্ষে থাকবে)।
স্ট্যাকে আইটেম যোগ করুন
একটি স্ট্যাকে আইটেম যোগ করতে, আমরা append()
ব্যবহার করতে পারি পদ্ধতি আমরা নিম্নলিখিত কোড ব্যবহার করে আমাদের হোমওয়ার্ক অ্যাসাইনমেন্ট স্ট্যাক তৈরি করতে পারি:
অ্যাসাইনমেন্ট =[]assignments.append("Hannah")assignments.append("Benny")assignments.append("Gordon")print(assignments)
আমাদের কোড ফিরে আসে:
['হান্না', 'বেনি', 'গর্ডন']
আমাদের কোডে, আমরা প্রথমে assignments
নামে একটি তালিকা ঘোষণা করি . তারপর, আমরা append()
ব্যবহার করি আমাদের হস্তান্তর করা অ্যাসাইনমেন্টের তালিকায় তিনটি নাম যুক্ত করার পদ্ধতি। আমরা যে নামগুলি যোগ করি তা হল:হান্না, বেনি, গর্ডন। যেহেতু গর্ডন শেষ তার অ্যাসাইনমেন্টটি হস্তান্তর করেছিলেন, এটি আমাদের তালিকার চূড়ান্ত অবস্থানে উপস্থিত হয়।
স্ট্যাক থেকে আইটেমগুলি সরান
ধরুন আমরা গর্ডনের অ্যাসাইনমেন্টকে গ্রেড করেছি, এবং আমরা খুঁজে বের করতে চাই কোনটি গ্রেডের পাশে। এটি আমাদের স্ট্যাকের শীর্ষে থাকা আইটেমটিকে অপসারণ করে।
আমাদের স্ট্যাক থেকে একটি আইটেম সরাতে, আমরা pop()
ব্যবহার করতে পারি পদ্ধতি আমাদের স্ট্যাকের উপরের আইটেমটি সরাতে আমরা যে কোডটি ব্যবহার করতে পারি তা এখানে:
assignments =[]assignments.append("Hannah")assignments.append("Benny")assignments.append("Gordon")assignments.pop()print(assignments)
আমাদের কোড ফিরে আসে:
['হান্না', 'বেনি']
pop()
ব্যবহার করে স্ট্যাক থেকে গর্ডনের নাম সরানো হয়েছে , এবং তাই আমাদের স্ট্যাকে এখন শুধুমাত্র দুটি নাম রয়েছে:হান্না এবং বেনি।
collections.deque ক্লাস
সংগ্রহের লাইব্রেরির ডিক ক্লাস আপনাকে একটি ডাবল-এন্ডেড সারি তৈরি করতে দেয়।
ডিক অবজেক্টটি দ্বিগুণ-লিঙ্কযুক্ত তালিকা হিসাবে প্রয়োগ করা হয়, যার অর্থ উপাদানগুলি সন্নিবেশ করা এবং মুছে ফেলার সময় এটি শক্তিশালী এবং সামঞ্জস্যপূর্ণ কর্মক্ষমতা রয়েছে। উপরন্তু, যেহেতু সংগ্রহের লাইব্রেরিটি পাইথন স্ট্যান্ডার্ড লাইব্রেরির অংশ, আপনি একটি বহিরাগত লাইব্রেরি ডাউনলোড না করেই এটি আপনার কোডে আমদানি করতে পারেন।
collections.deque
এর সাথে কাজ করতে ক্লাস, আমরা প্রথমে একটি আমদানি বিবৃতি ব্যবহার করে আমাদের কোডে এটি আমদানি করতে হবে:
সংগ্রহ থেকে আমদানি ডিক
collections.deque ক্লাস কীভাবে কাজ করে তা বোঝাতে আগের থেকে আমাদের হোমওয়ার্ক উদাহরণে ফিরে আসি।
একটি Deque স্ট্যাকে আইটেম যোগ করুন
একটি deque স্ট্যাকে আইটেম যোগ করতে, আমরা append()
ব্যবহার করতে পারি পদ্ধতি ধরুন আমরা deque ক্লাস ব্যবহার করে আমাদের হোমওয়ার্ক অ্যাসাইনমেন্টের সাথে একটি সারি তৈরি করতে চাই। আমরা এই কোডটি ব্যবহার করে তা করতে পারি:
সংগ্রহ থেকে আমদানি dequeassignments =deque()assignments.append("Hannah")assignments.append("Benny")assignments.append("Gordon")print(assignments)
আমাদের কোড ফিরে আসে:
deque(['Hannah','Benny','Gordon'])
আসুন আমাদের কোড ভাঙ্গা যাক। প্রথমত, আমরা সংগ্রহ লাইব্রেরি থেকে deque ক্লাস আমদানি করি। তারপর, আমরা deque()
ব্যবহার করে একটি deque তৈরি করি এবং এটি পরিবর্তনশীল assignments
এ বরাদ্দ করুন .
এরপরে, আমরা আমাদের অ্যাসাইনমেন্ট ডেকে তিনটি নাম যোগ করি:হান্না, বেনি এবং গর্ডন। অবশেষে, আমরা কনসোলে আমাদের অ্যাসাইনমেন্ট সারির বিষয়বস্তু প্রিন্ট আউট করি।
আপনি দেখতে পাচ্ছেন যে, এই উদাহরণে, আমাদের ডেটা স্ট্যাকের পরিবর্তে একটি deque হিসাবে সংরক্ষণ করা হয়েছে (আমাদের ফলাফল deque()
এ আবদ্ধ রয়েছে তা দ্বারা চিহ্নিত ) এর কারণ হল আমরা ডেক স্ট্রাকচার ব্যবহার করছি, যদিও আমাদের ডেটা এখনও স্ট্যাকের মতো কাজ করে।
ডেক স্ট্যাক থেকে আইটেমগুলি সরান
একটি deque স্ট্যাক থেকে আইটেমগুলি সরাতে, আপনি pop()
ব্যবহার করতে পারেন পদ্ধতি
ধরুন আমরা সবেমাত্র গর্ডন এবং বেনির অ্যাসাইনমেন্টকে গ্রেড করেছি। আমাদের স্ট্যাক থেকে তাদের সরাতে, আমরা নিম্নলিখিত কোড ব্যবহার করতে পারি:
সংগ্রহ থেকে আমদানি dequeassignments =deque()assignments.append("Hannah")assignments.append("Benny")assignments.append("Gordon")assignments.pop()assignments.pop()print(assignments)প্রে>আমাদের কোড ফিরে আসে:
deque(['Hannah'])আমাদের কোডে, আমরা প্রথমে তিনটি মান সহ একটি ডেক স্ট্যাক তৈরি করি। তারপর, আমরা
pop()
নির্বাহ করি বিবৃতি দুইবার। প্রতিবারpop()
স্টেটমেন্ট চলে, আমাদের স্ট্যাকের উপরের আইটেমটি সরানো হয়। এর মানে হল যে গর্ডন এবং তারপরে বেনি মানগুলি আমাদের স্ট্যাক থেকে সরিয়ে দেওয়া হয়েছে, হ্যানাকে আমাদের স্ট্যাকের মধ্যে একমাত্র আইটেম হিসাবে রেখে দেওয়া হয়েছে।
Python deque ক্লাস সম্পর্কে আরও জানতে, Python queues এবং deques-এর উপর আমাদের টিউটোরিয়াল পড়ুন।
উপসংহার
স্ট্যাকগুলি আপনাকে লাস্ট-ইন, ফার্স্ট-আউট অর্ডারে ডেটা সংরক্ষণ করতে দেয়। পাইথনে একটি স্ট্যাক প্রয়োগ করার জন্য অনেকগুলি উপায় রয়েছে, তবে দুটি সবচেয়ে ব্যবহারিক পন্থা হল পাইথনের অন্তর্নির্মিত তালিকা কাঠামো ব্যবহার করা বা
collections.deque()
ব্যবহার করা। ক্লাস
এই টিউটোরিয়ালটি উদাহরণের সাথে আলোচনা করা হয়েছে, কিভাবে তালিকা এবং
collections.deque()
ব্যবহার করে পাইথনে একটি স্ট্যাক তৈরি করতে হয় . এখন আপনি একজন পেশাদার পাইথন বিকাশকারীর মতো আপনার নিজস্ব স্ট্যাক তৈরি করা শুরু করতে প্রস্তুত!