C&S 2024 Exam - Question 1 (b)

 avatar
itsLu
c_cpp
2 years ago
1.4 kB
6
Indexable
#include <iostream>
using namespace std;

class arrayStack
{
    int * stackArray , sizeOfStack , top;
public:
    arrayStack(int sizeOfArray = 1)
    {
        sizeOfStack = sizeOfArray;
        stackArray = new int [sizeOfStack];
        top = 0;
    }
    bool isFull()
    {
        return sizeOfStack == top;
    }
    void double_size()
    {
        int * tempArray = new int [sizeOfStack * 2];
        for(int k = 0 ; k < sizeOfStack ; k++)
        {
            tempArray[k] = stackArray[k];
        }
        sizeOfStack *= 2;
        delete[] stackArray;
        stackArray = tempArray;
    }
    void push(int data)
    {
        if(isFull())
            double_size();
        stackArray[top] = data;
        top++;
    }
    bool isempty()
    {
        return top == 0;
    }
    int pop()
    {
        if(isempty())
        {
            cout << "Stack is empty\n";
            return -1;
        }
        top--;
        return stackArray[top];
    }
    int get_number_of_elements()
    {
        return top;
    }
    void print_stack()
    {
        for(int k = top - 1 ; k >= 0; k--)
            cout << stackArray[k] << "\t";
    }
    void delete_stack()
    {
        top = 0;
    }
    ~arrayStack()
    {
        cout << "Stack is deleted\n";
        delete[] stackArray;
    }
};
Editor is loading...
Leave a Comment