Java मधील स्टॅक ही एक डेटा रचना आहे, जसे की रांग, अॅरे, लिंक्ड लिस्ट किंवा ट्री. जिथे ते इतरांपेक्षा वेगळे आहे ते म्हणजे जावा स्टॅक लास्ट इन, फर्स्ट आउट (LIFO) तत्त्वावर आधारित आहे. याचा अर्थ असा आहे की जेव्हा तुम्ही स्टॅकमधून घटक जोडण्यासाठी आणि काढून टाकण्यासाठी दोन कमांड वापरता, तेव्हा तुम्ही काढून टाकलेला पहिला नेहमी तुम्ही जोडलेला शेवटचा असेल. चला जावा स्टॅक क्लास जवळून पाहू

जावा स्टॅक क्लास एक्सप्लोर करत आहे

जावा स्टॅक क्लास हा वेक्टर क्लासचा विस्तार आहे , जो स्वतः यादी वर्गाचा विस्तार करतो. कारण व्हेक्टर बदलण्यायोग्य असतात आणि आतील घटकांच्या मागणीनुसार वाढू आणि संकुचित होऊ शकतात, स्टॅक s मागणीनुसार आकार देखील बदलू शकतात. वेक्टर क्लासचा विस्तार पाच ऑपरेशन्स जोडतो जे वेक्टरचे स्टॅकमध्ये रूपांतर करतात . या पाच ऑपरेशन्स आहेत:
  • .पुश(ई आयटम) – स्टॅकच्या शीर्षस्थानी एक घटक ठेवतो
  • .pop() – स्टॅकच्या शीर्षस्थानी असलेला घटक काढून फंक्शनच्या मूल्याप्रमाणे परत करतो.
  • .peek() – स्टॅकच्या शीर्षस्थानी असलेला घटक न काढता पाहतो
  • .empty() – स्टॅक रिकामा आहे की नाही हे तपासण्यासाठी बुलियन फंक्शन. 0 किंवा 1 मिळवते.
  • .search(Object o) - o शोधते आणि त्याचे स्थान परत करते. मूल्य 1-आधारित आहे, 0-आधारित नाही
स्टॅकला व्हेक्टरचा भाग असलेल्या सर्व पद्धतींचा वारसा देखील मिळतो , ज्यामध्ये toString() , समाविष्ट() , indexOf() , आणि lastElement() यांचा समावेश आहे परंतु इतकेच मर्यादित नाही . जावा स्टॅक 101: स्टॅक क्लासमध्ये शोधणे - 1

जावा स्टॅक उदाहरण कोडिंग

आता आपल्याला Stack ची फंक्शन्स माहित आहेत , चला जावा स्टॅक उदाहरण कोड करूया. स्टॅक s डेटा हाताळण्यासाठी खूप उपयुक्त आहेत जो तात्पुरता संग्रहित केला गेला पाहिजे आणि त्वरीत पुनर्प्राप्त केला गेला पाहिजे. स्टॅक LIFO असल्यामुळे , ट्री डेटा स्ट्रक्चर एक्सप्लोर करताना नोड ट्रॅव्हर्सलसाठी ते अपवादात्मकपणे उपयुक्त आहे. या सर्व गोष्टींमध्ये जाण्यापूर्वी, एक मूलभूत स्टॅक तयार करूया. स्टॅक लागू करण्यासाठी कोड खालीलप्रमाणे आहे:

import java.util.*;

class Main {
  public static void main(String[] args) {
    Stack<Integer> stackExample = new Stack<Integer>();
रिक्त स्टॅक तयार करण्यासाठी तुम्हाला एवढेच करावे लागेल . तुम्ही वापरून डेटा प्रकार घोषित न करता फक्त ते घोषित करू शकता:

Stack example = new Stack();
लक्षात ठेवा की स्टॅक बदलण्यायोग्य असल्यामुळे, आम्ही घटकांना स्टॅकवर ढकलतो, ते आपोआप आकारात समायोजित होईल. आता स्टॅक फंक्शन्स कसे वापरायचे ते पाहू .

जावा स्टॅक अंमलबजावणी

आपण याआधी थोडक्यात शोधलेल्या पाच पद्धती कशा वापरायच्या ते पाहू. तुम्ही प्लेट्सचा स्टॅक म्हणून विचार केल्यास Java स्टॅक अंमलबजावणी लक्षात ठेवणे सोपे आहे. तुम्ही प्लेट्स स्टॅकवर ठेवता, पण प्लेट मिळवण्यासाठी तुम्ही तळाशी जात नाही, तुम्हाला वरून एक मिळते. तुम्ही घातलेले शेवटचे तुम्ही काढलेले पहिले आहे. stackExample सह आमचे मागील उदाहरण वाढवताना , फंक्शन्स खालीलप्रमाणे आहेत:

ढकलणे


// pushing integers onto the Stack
    stackExample.push(5);
    stackExample.push(10);
या टप्प्यावर, आम्ही इतर फंक्शन्स दाखवणार आहोत जसे की आम्ही प्रत्येक वेळी हे दोन पूर्णांक Java स्टॅक उदाहरणावर ढकलले आहेत.

पॉप


//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() चा वापर Java मध्ये स्टॅक अंमलबजावणी म्हणून करू शकतो आणि स्टॅकवरील पुढील आयटम न काढता त्यावर एक नजर टाकू शकतो.

System.out.println(stackExample.peek());
आउटपुट

10
जर आपण स्टॅक पॉप आणि प्रिंट केले तर ते 10 आणि 5 परत येईल कारण 10 अजूनही स्टॅकवर आहे. आम्ही फक्त ते पाहिले, आम्ही ते पॉप फंक्शनने काढले नाही. पीक फंक्शन हे जावामधील स्टॅक एससाठी एक उत्तम साधन आहे.

शोधा

आम्हाला विशिष्ट घटक शोधायचा असल्यास, Java मधील स्टॅक अंमलबजावणी .search(e); ते शोधण्यासाठी.

System.out.println(stackExample.search(5));
आउटपुट

2
लक्षात ठेवा की हे असे आहे कारण आम्ही स्टॅकच्या शीर्षस्थानी मोजतो आणि Java स्टॅक 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
लक्षात ठेवा की जेव्हा तुम्ही Java मध्ये Stack s द्वारे पुनरावृत्ती करता तेव्हा तुम्ही त्यातील कोणतेही घटक काढून टाकत नाही. पुनरावृत्ती अनिवार्यपणे तुम्हाला स्टॅकमधील प्रत्येक घटक क्रमाने पाहण्याची परवानगी देते. जेव्हा तुम्ही हे करता, तेव्हा तुम्ही विशिष्ट घटक असलेली स्थाने शोधू शकता आणि नंतर त्यामधून जाऊ शकता आणि हाताळू शकता. आवश्यक असल्यास तुम्ही त्यांना मोजू शकता, हटवू शकता किंवा बदलू शकता.