Data is important. Storing & Organizing Data has been the key goal of most complex Computer Programs. Not just Store & organize, retrieve Data in the most efficient & reliable way could have unprecedented importance. To achieve this goal, we can use Data Structures.
Data Structures are particular way of storing data & manage the data the way we want it. Among the Composite, Abstract & Primitive data structures, Stack is of course abstract.
Stack? Stack is a data structure with Sequential Access as stored data could be accessed in a sequence Like in Cassette Tape. Stack is built on (LIFO) Last In First Out principle.
Three operations are involved with Stack. Push, Pop & Peek. These, operations proves the sequential accessibility of Stack.
The C++ code could be developed for these operations like follows. First, create Stack.h, Stack.cpp & main.cpp files in C++ project. Header file (*.h) includes the attribute & method declarations.
//Stack.h
class Stack
{
private:
int maxSize;
double *Store;
int top; // index
public:
~Stack(); // destructor frees up the memory
Stack(int s);
double pop(); // pop operation
void push(double num); // push operation & push number
double peek(); // peek the top value
};
*.cpp file includes the method definitions of the Stack class. //Stack.cpp
#include "Stack.h"
#include <iostream>
using namespace std;
Stack::Stack(int s)
{
maxSize = s; // determines the size of array
top = -1; // initial index number
Store = new double[maxSize];
}
double Stack:: peek()
{
if(top == -1)
{
cout<<"Stack is Empty"<<endl;
return -999;
}
else if (top == maxSize)
{
cout<<"Stack is Full"<<endl;
return Store[top];
}
else
{
return Store[top];
}
}
double Stack::pop()
{
if(top ==-1)
{
cout<<"Stack is Empty"<<endl;
return -999;
}
else
{
return Store[top--];
}
}
void Stack::push(double j)
{
if(top == maxSize-1)
{
cout<<"Stack is Full"<<endl;
}
else
{
Store[++top] = j;
}
}
'main.cpp' should be the main execution file which ultimately helps to run the program.
//main.cpp
#include "Stack.h"
#include<iostream>
using namespace std;
int main()
{
Stack *a = new Stack(5);
a->push(10);
cout<<a->peek()<<endl;
a->push(20);
a->push(30);
a->push(40);
a->push(50);
a->push(60); // these values won't be inserted
a->push(70); // as Stack size is 5 & it's full
cout<<a->peek()<<endl; //peeks the final value should be 50
system("PAUSE");
return 0;
}
Even though, the C++ Programming Code sometimes may be problematic for those who're not familiar with C++, the Concept of Stacks is Clear.
1. Push - Enter an Item. If stack isn't Full.
2. Pop - Remove an Item, if Stack isn't Empty.
3. Peek - Check the Item at the Top.
The idea is similar to a Stack of Books. "If you need to Remove the firstly entered material you've to remove all other material to do so."
Thank You!
1. Push - Enter an Item. If stack isn't Full.
2. Pop - Remove an Item, if Stack isn't Empty.
3. Peek - Check the Item at the Top.
The idea is similar to a Stack of Books. "If you need to Remove the firstly entered material you've to remove all other material to do so."
Thank You!



No comments:
Post a Comment