19CSE201- Advanced Programming
Object Oriented Programming- Stacks using Classes in C++
#include <iostream>
using namespace std;
template <class T>
class Stack{
private:
int top;
int capacity;
T* data;
public:
Stack(int size):top(-1),capacity(size){
data= new T[size];
}
~Stack(){
delete [] data;
}
void push(T val){
if(top==capacity-1){
cout<<"Stack is full\n";
return;
}
data[++top]=val;
}
bool isEmpty(){
return(top==-1);
}
T pop(){
if(isEmpty()){
cout<<"Stack is empty\n";
return -1;
}
return data[--top];
}
T peek(){
if(isEmpty()){
cout<<"Stack is empty\n";
return -1;
}
return data[top];
}
};
int main() {
Stack<int> intStack(5);
intStack.push(1);
intStack.push(2);
intStack.push(3);
intStack.push(4);
cout<<"Element at the top of the stack = "<<intStack.peek()<<endl;
intStack.pop();
cout<<"Element at the top of the stack after pop() = "<<intStack.peek()<<endl;
}
Matrix<float> m3(2,2);
Matrix<float> m4(2,2);
m3.read();
cout<<"M3= \n";
m3.display();
m4.read();
cout<<"M4= \n";
m4.display();
cout<<"M3+M4= \n";
m3.add(m4);
cout<<"M3-M4= \n";
m3.sub(m4);
cout<<"M3*M4= \n";
m3.mult(m4);
return 0;
}