#include <iostream> using namespace std; template <class T> class Stack { private: int MaxSize; int stkptr; T *stackArray; Stack(const Stack &other); // disallow copy Stack& operator =(const Stack& other); // disallow assignment public: Stack(int size); ~Stack(); void push (const T &); T pop( ); bool isFull(); bool isEmpty(); T top(); }; template<class T> T Stack<T>::top() { if(stkptr != -1) return stackArray[stkptr]; // stkptr++; } template <class T> Stack<T>::Stack(int size) { if(size > 0) { MaxSize = size; stackArray = new T[MaxSize]; stkptr = 0; } else cout<<"Size Should Be +_VE. " << endl; } template <class T> Stack<T>::~Stack() { delete []stackArray; } template <class T> void Stack<T>::push(const T &elem) { if (!isFull()) { stackArray[stkptr] = elem; stkptr++; } else cout <<"Stack Is Full. " << endl; } template <class T> T Stack<T>::pop() { if (!isEmpty()) { stkptr--; return stackArray[stkptr]; } else cout<<"Stack Is Empty. "<< endl; } template <class T> bool Stack<T>::isEmpty() { return stkptr == 0; } template <class T> bool Stack<T>::isFull() { return stkptr == MaxSize; } int main() { const int n = 5; Stack<int> stk(n); stk.push(1); stk.push(31); stk.push(14); stk.push(11); stk.push(9); cout << endl << "Search Max .!!! " << endl; int Max = stk.pop(); cout << Max; while(!stk.isEmpty()) { if(stk.pop() > Max) { Max = stk.pop(); // This statement looks Wierd.. } } cout << Max << "\n\n"; return 0; }
Max
if(stk.pop() > Max) { Max = stk.pop(); // This statement looks Wierd.. }
int cur = stk.pop(); if (cur > Max) { Max = cur; }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)