implement the Stack ADT 50 points using array based approac
implement the Stack ADT (50 points) using array – based approach
#include \"StackArray.h\"
template <typename DataType>
StackArray<DataType>::StackArray(int maxNumber)
{
}
template <typename DataType>
StackArray<DataType>::StackArray(const StackArray& other)
{
}
template <typename DataType>
StackArray<DataType>& StackArray<DataType>::operator=(const StackArray& other)
{
}
template <typename DataType>
StackArray<DataType>::~StackArray()
{
}
template <typename DataType>
void StackArray<DataType>::push(const DataType& newDataItem) throw (logic_error)
{
}
template <typename DataType>
DataType StackArray<DataType>::pop() throw (logic_error)
{
}
template <typename DataType>
void StackArray<DataType>::clear()
{
}
template <typename DataType>
bool StackArray<DataType>::isEmpty() const
{
return false;
}
template <typename DataType>
bool StackArray<DataType>::isFull() const
{
return false;
}
template <typename DataType>
void StackArray<DataType>::showStructure() const
// Array implementation. Outputs the data items in a stack. If the
// stack is empty, outputs \"Empty stack\". This operation is intended
// for testing and debugging purposes only.
{
if( isEmpty() ) {
cout << \"Empty stack.\" << endl;
}
else {
int j;
cout << \"Top = \" << top << endl;
for ( j = 0 ; j < maxSize ; j++ )
cout << j << \"\\t\";
cout << endl;
for ( j = 0 ; j <= top ; j++ )
{
if( j == top )
{
cout << \'[\' << dataItems[j] << \']\'<< \"\\t\"; // Identify top
}
else
{
cout << dataItems[j] << \"\\t\";
}
}
cout << endl;
}
cout << endl;
}
#ifndef STACKARRAY_H
#define STACKARRAY_H
#include <stdexcept>
#include <iostream>
using namespace std;
#include \"Stack.h\"
template <typename DataType>
class StackArray : public Stack<DataType> {
public:
StackArray(int maxNumber = Stack<DataType>::MAX_STACK_SIZE);
StackArray(const StackArray& other);
StackArray& operator=(const StackArray& other);
~StackArray();
void push(const DataType& newDataItem) throw (logic_error);
DataType pop() throw (logic_error);
void clear();
bool isEmpty() const;
bool isFull() const;
void showStructure() const;
private:
int maxSize;
int top;
DataType* dataItems;
};
#endif //#ifndef STACKARRAY_H
Solution
#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
class stack
{
int stk[5];
int top;
public:
stack()
{
top=-1;
}
void push(int x)
{
if(top > 4)
{
cout <<\"stack over flow\";
return;
}
stk[++top]=x;
cout <<\"inserted\" <<x;
}
void pop()
{
if(top <0)
{
cout <<\"stack under flow\";
return;
}
cout <<\"deleted\" <<stk[top--];
}
void display()
{
if(top<0)
{
cout <<\" stack empty\";
return;
}
for(int i=top;i>=0;i--)
cout <<stk[i] <<\" \";
}
};
main()
{
int ch;
stack st;
while(1)
{
cout <<\"\ 1.push 2.pop 3.display 4.exit\ Enter ur choice\";
cin >> ch;
switch(ch)
{
case 1: cout <<\"enter the element\";
cin >> ch;
st.push(ch);
break;
case 2: st.pop(); break;
case 3: st.display();break;
case 4: exit(0);
}
}
return (0);
}


