Vid:
Code:
Array Implementation:
#include<iostream> using namespace std; #define MAX_SIZE 101 int A[MAX_SIZE]; int top=-1; //top==index of array void push(int x){ //top++; //A[top]=x; if(top==MAX_SIZE-1){ cout<<"Stack Overflow"; return; } A[++top]=x; //here pre increment operator is using } void pop() { if(top==-1){ cout<<"No element to return"; return; } top--; } int Top() { return A[top]; } void print() { cout<<"Stack:"; for(int i=0; i<=top; i++){ cout<<" "<<A[i]<<" "; } cout<<endl; } int main() { push(2);print(); push(1);print(); push(7);print(); pop();print(); pop();print(); push(10);print(); }
OOP Implementation with Array:
#include<iostream> using namespace std; #define MAX_SIZE 101 class Stack{ private: int A[MAX_SIZE]; int top; //top==index of array public: Stack(){ top=-1; } void push(int x) { if(top==MAX_SIZE-1){ cout<<"err: stackoverflow"; return; } A[++top]=x; } void pop() { if(top==-1) { cout<<"No element to pop"; return; } top--; } int Top(){ return A[top]; } int IsEmpty(){ if(top==-1) return 1; return 0; } void print(){ int i; cout<<"Stack: "; for(i=0;i<=top;i++){ cout<<A[i]<<" "; } cout<<endl; } }; int main(){ Stack S; S.push(2);S.print(); S.push(5);S.print(); S.push(10);S.print(); S.pop();S.print(); S.pop();S.print(); S.push(18);S.print(); }
Practice Problem:
http://www.mycodeschool.com/problems/stock-market