// Stack di item arbitrari (template) implementato con un array // Versione 2/2024 // #include using namespace std; template class StackArray { protected: ITEM *data; int len; int top; public: StackArray(int); virtual ~StackArray(); bool isEmpty() const; bool isFull() const; StackArray *push(ITEM); ITEM pop(); }; template StackArray::StackArray(int l) { data=new ITEM[l]; len=l; top=-1; } template StackArray::~StackArray(){ delete [] data; } template bool StackArray::isEmpty() const { return top==-1; } template bool StackArray::isFull() const { return top==len-1; } template StackArray *StackArray::push(ITEM item) { if(isFull()) cout << "Stack pieno!"< ITEM StackArray::pop() { int item=0; if(isEmpty()) cout << "Stack vuoto!"< x(10); char scelta; int item; do { cout << "*** StackArray v1 ***"<> scelta; switch(scelta) { case 'p': cout<<" > item? "; cin>>item; x.push(item); break; case 'o': item=x.pop(); cout<<" > item="<