अगला छोटा तत्व वह तत्व है जो इसके बाद पहला छोटा तत्व है। आइए एक उदाहरण देखें।
गिरफ्तारी =[1, 2, 3, 5, 4]
5 के लिए अगला छोटा तत्व 4 है और तत्वों 1, 2, 3 के लिए अगला छोटा तत्व -1 है क्योंकि उनके बाद कोई छोटा तत्व नहीं है।
एल्गोरिदम
-
यादृच्छिक संख्याओं के साथ सरणी प्रारंभ करें
-
स्टैक को इनिशियलाइज़ करें।
-
स्टैक में पहला तत्व जोड़ें।
-
सरणी के तत्व के माध्यम से पुनरावृति करें।
-
यदि स्टैक खाली है, तो वर्तमान तत्व को स्टैक में जोड़ें।
-
जबकि वर्तमान तत्व स्टैक के शीर्ष तत्व से छोटा है।
-
शीर्ष तत्व को अगले छोटे तत्व के साथ वर्तमान तत्व के रूप में प्रिंट करें।
-
शीर्ष तत्व को पॉप करें।
-
-
तत्व को स्टैक में जोड़ें।
-
-
जबकि स्टैक खाली नहीं है।
-
अगले छोटे तत्व वाले तत्वों को -1 के रूप में प्रिंट करें।
-
कार्यान्वयन
C++ में उपरोक्त एल्गोरिथम का कार्यान्वयन निम्नलिखित है
#include <bits/stdc++.h> using namespace std; void nextSmallerElements(int arr[], int n) { stack<int> s; s.push(arr[0]); for (int i = 1; i < n; i++) { if (s.empty()) { s.push(arr[i]); continue; } while (!s.empty() && s.top() > arr[i]) { cout << s.top() << " -> " << arr[i] << endl; s.pop(); } s.push(arr[i]); } while (!s.empty()) { cout << s.top() << " -> " << -1 << endl; s.pop(); } } int main() { int arr[] = { 5, 4, 3, 2, 1 }; int n = 5; nextSmallerElements(arr, n); return 0; }
आउटपुट
यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।
1 -> 2 2 -> 3 3 -> 4 4 -> 5 5 -> -1