diff --git a/basic dsa/MonotonicStackC++.cpp b/basic dsa/MonotonicStackC++.cpp new file mode 100644 index 00000000..15d5c25d --- /dev/null +++ b/basic dsa/MonotonicStackC++.cpp @@ -0,0 +1,45 @@ +#include +using namespace std; +//Function to demonstrate monotonic decreasing stack +void decreasingMonotonicStack(vector inputs){ + +vector stack; + for(int p:inputs){ + +while(!stack.empty() && stack.back()<=p){ + stack.pop_back(); +} +stack.push(p); + + } + for (int val : stack) { + cout << val << " "; +} + cout< inputs){ + +vector stack; + for(int p:inputs){ + +while(!stack.empty() && stack.back()>=p){ + stack.pop_back(); +} +stack.push(p); + + } + + for (int val : stack) { + cout << val << " "; +} + cout< inputs={3,4,5,6,7,4,5,3}; +decreasingMonotonicStack(inputs); +increasingMonotonicStack(inputs); + + + +} \ No newline at end of file