CodeGym/Java Blog/এলোমেলো/জাভা স্ট্যাক 101: স্ট্যাক ক্লাসে প্রবেশ করা
John Squirrels
লেভেল 41
San Francisco

জাভা স্ট্যাক 101: স্ট্যাক ক্লাসে প্রবেশ করা

এলোমেলো দলে প্রকাশিত
সদস্যগণ
জাভাতে স্ট্যাক হল একটি ডেটা স্ট্রাকচার, অনেকটা সারি, অ্যারে, লিঙ্ক করা তালিকা বা গাছের মতো যেখানে এটি অন্যদের থেকে আলাদা তা হল জাভা স্ট্যাক লাস্ট ইন, ফার্স্ট আউট (LIFO) নীতির উপর ভিত্তি করে। এর অর্থ হ'ল আপনি যখন স্ট্যাক থেকে একটি উপাদান যুক্ত করতে এবং সরাতে দুটি কমান্ড ব্যবহার করেন, আপনি প্রথমটি সরিয়ে ফেলবেন সর্বদা আপনার যোগ করা শেষটি হবে। আসুন জাভা স্ট্যাক ক্লাসটি ঘনিষ্ঠভাবে দেখে নেওয়া যাক

জাভা স্ট্যাক ক্লাস অন্বেষণ

জাভা স্ট্যাক ক্লাস হল ভেক্টর ক্লাসের একটি এক্সটেনশন , যা নিজেই তালিকা ক্লাসকে প্রসারিত করে। যেহেতু ভেক্টরগুলি পরিবর্তনযোগ্য এবং ভিতরের উপাদানগুলির চাহিদার সাথে বৃদ্ধি এবং সঙ্কুচিত হতে পারে, স্ট্যাকগুলি চাহিদা অনুসারে আকার পরিবর্তন করতে পারে। ভেক্টর ক্লাসের এক্সটেনশন পাঁচটি অপারেশন যোগ করে যা একটি ভেক্টরকে স্ট্যাকে রূপান্তরিত করে এই পাঁচটি অপারেশন হল:
  • .পুশ(ই আইটেম) - স্ট্যাকের শীর্ষে একটি উপাদান রাখে
  • .pop() – স্ট্যাকের উপরের উপাদানটিকে সরিয়ে দেয় এবং ফাংশনের মান হিসাবে ফেরত দেয়
  • .peek() - স্ট্যাকের উপরের উপাদানটিকে অপসারণ না করেই দেখে
  • .empty() - স্ট্যাক খালি আছে কিনা তা পরীক্ষা করার জন্য বুলিয়ান ফাংশন। একটি 0 বা 1 প্রদান করে।
  • .search(Object o) – o এর জন্য খোঁজে এবং এর অবস্থান ফেরত দেয়। মান 1-ভিত্তিক, 0-ভিত্তিক নয়
স্ট্যাক সমস্ত পদ্ধতির উত্তরাধিকারী হয় যা ভেক্টরের অংশ , যার মধ্যে রয়েছে কিন্তু সীমাবদ্ধ নয়, toString() , contains() , indexOf() , এবং lastElement()জাভা স্ট্যাক 101: স্ট্যাক ক্লাসে প্রবেশ করা - 1

একটি জাভা স্ট্যাকের উদাহরণ কোডিং

এখন যেহেতু আমরা স্ট্যাকের ফাংশনগুলি জানি , আসুন একটি জাভা স্ট্যাকের উদাহরণ কোড করি। স্ট্যাক s ডেটা পরিচালনার জন্য খুব দরকারী যা অস্থায়ীভাবে সংরক্ষণ করতে হবে এবং দ্রুত পুনরুদ্ধার করতে হবে। যেহেতু স্ট্যাকটি LIFO, এটি একটি ট্রি ডেটা স্ট্রাকচার অন্বেষণ করার সময় নোড ট্রাভার্সালের জন্য ব্যতিক্রমীভাবে কার্যকর। আমরা যে সব পেতে আগে, আসুন একটি মৌলিক স্ট্যাক তৈরি করা যাক. একটি স্ট্যাক বাস্তবায়নের কোড নিম্নরূপ:
import java.util.*;

class Main {
  public static void main(String[] args) {
    Stack<Integer> stackExample = new Stack<Integer>();
একটি খালি স্ট্যাক তৈরি করতে আপনাকে যা করতে হবে । আপনি এটি ব্যবহার করে ডেটা টাইপ ঘোষণা না করে কেবল এটি ঘোষণা করতে পারেন:
Stack example = new Stack();
মনে রাখবেন যে যেহেতু স্ট্যাকগুলি পরিবর্তনযোগ্য, আমরা উপাদানগুলিকে স্ট্যাকের দিকে ঠেলে দিলে, এটি স্বয়ংক্রিয়ভাবে আকারে সামঞ্জস্য করবে। এখন দেখা যাক কিভাবে Stack ফাংশন ব্যবহার করতে হয়।

জাভা স্ট্যাক বাস্তবায়ন

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

ধাক্কা

// pushing integers onto the Stack
    stackExample.push(5);
    stackExample.push(10);
এই মুহুর্তে, আমরা অন্যান্য ফাংশনগুলি দেখাতে যাচ্ছি যেন আমরা প্রতিবার জাভা স্ট্যাকের উদাহরণে এই দুটি পূর্ণসংখ্যাকে পুশ করেছি।

পপ

//popping integers off of the Stack
System.out.println(stackExample.pop());
System.out.println(stackExample.pop());
আউটপুট:
10
5

খালি

এখন, ধরা যাক যে আপনি একটি স্ট্যাক থেকে সমস্ত উপাদান মুছে ফেলতে চান তবে কতগুলি উপাদান আছে তা আপনি নিশ্চিত নন। স্ট্যাক থেকে সমস্ত উপাদান পপ করার জন্য লুপ করার সময় আপনি Boolean.isEmpty() ফাংশনটিকে একটি পূর্ব শর্তের সাথে একত্রিত করতে পারেন । এই জাভা স্ট্যাক বাস্তবায়ন কিভাবে করা হয় তা দেখুন।
while(!stackExample.isEmpty()) {
  System.out.println(stackExample.pop());
}
আউটপুট
10
5

উঁকি

আমরা .peek() কে জাভাতে স্ট্যাক ইমপ্লিমেন্টেশন হিসাবে ব্যবহার করতে পারি স্ট্যাকের পরবর্তী আইটেমটি অপসারণ না করে দেখে নিতে।
System.out.println(stackExample.peek());
আউটপুট
10
যদি আমরা স্ট্যাক পপ করে প্রিন্ট করি , তাহলে এটি 10 ​​এবং 5 ফেরত দেবে কারণ 10 এখনও স্ট্যাকের উপর রয়েছে। আমরা শুধু এটি দেখেছি, আমরা পপ ফাংশন দিয়ে এটি অপসারণ করিনি। পিক ফাংশনটি জাভাতে স্ট্যাকের জন্য একটি দুর্দান্ত সরঞ্জাম ।

অনুসন্ধান করুন

যদি আমরা একটি নির্দিষ্ট উপাদান খুঁজে পেতে চাই, জাভাতে স্ট্যাক বাস্তবায়ন .search(e); এটি খুঁজে পেতে
System.out.println(stackExample.search(5));
আউটপুট
2
মনে রাখবেন যে আমরা স্ট্যাকের উপরে থেকে গণনা করি এবং জাভা স্ট্যাকের শুরু 1 থেকে, একটি অ্যারের মতো 0 নয় । সুতরাং, স্ট্যাকের দিকে তাকালে, এটি (10) --> (5), এবং 5 নম্বর 2 স্থানে রয়েছে। আপনি যদি স্ট্যাকের মধ্যে নেই এমন একটি উপাদান খুঁজে বের করার চেষ্টা করেন , আপনি আউটপুট হিসাবে একটি -1 পাবেন।

পুনরাবৃত্তি

কোনো সংগ্রহের সাথে কাজ করার সময়, এমন সময় হতে পারে যখন আপনাকে একাধিক উপাদানের সন্ধান করতে হবে। জটিলতা বাঁচাতে এবং স্ট্যাকের মাধ্যমে একাধিকবার অনুসন্ধান করতে হলে, আপনি পুনরাবৃত্তি ব্যবহার করতে পারেন। যেহেতু জাভাতে স্ট্যাক লিস্ট ক্লাসকে প্রসারিত করে, তাই পুনরাবৃত্তি করার জন্য বেশ কয়েকটি বিকল্প রয়েছে। সবচেয়ে সহজ একটি হল শুধু ListIterator ফাংশন ব্যবহার করা। ListIterator চমৎকার যে এটি আপনাকে .hasPrevious() বা .hasNext() ব্যবহার করে একটি স্ট্যাককে উপরে থেকে নীচে বা নীচে থেকে উপরে যেতে দেয় । এটি দেখতে কেমন তা এখানে:
ListIterator<Integer> exampleIterator = stackExample.listIterator(stackExample.size());

  while (exampleIterator.hasPrevious()) {
    int iteration = exampleIterator.previous();
    System.out.println(iteration);
  }
আউটপুট
10
5
মনে রাখবেন যে আপনি যখন জাভাতে Stack s এর মাধ্যমে পুনরাবৃত্তি করেন, আপনি এতে কোনো উপাদান মুছে ফেলবেন না। পুনরাবৃত্তি করা আপনাকে স্ট্যাকের প্রতিটি উপাদানকে ক্রমানুসারে দেখতে দেয়। আপনি যখন এটি করেন, আপনি নির্দিষ্ট উপাদানগুলির অবস্থানগুলি সন্ধান করতে পারেন এবং তারপরে সেগুলি পরিচালনা করতে পারেন। প্রয়োজনে আপনি গণনা করতে, মুছতে বা এমনকি পরিবর্তন করতে পারেন।
মন্তব্য
  • জনপ্রিয়
  • নতুন
  • পুরানো
মন্তব্য লেখার জন্য তোমাকে অবশ্যই সাইন ইন করতে হবে
এই পাতায় এখনও কোনো মন্তব্য নেই