// @topic T060570 Stack of integers
// @brief main entry point

#include <cstdlib>
#include <iostream>
#include "Stack.h"

int main()
{
    int x = 10;
    int y = 20;

    Stack st(20);

    // Stack can preserve the values of the variables:
    st.push( x );
    st.push( y );

    // Modify and use values:
    x = 5555;
    y = 8888;

    // Get previous values from the stack.
    // Be careful -- restore values in the opposite order:
    y = st.top(); st.pop();
    x = st.top(); st.pop();

    // More stack functionality:
    st.push( 123 );
    st.push( 456 );
    std::cout << st.top() << '\n';   // prints 456
    st.pop();                        // remove value from the stack
    std::cout << st.top() << '\n';   // prints 123

    // Replace value directly on the top of the stack:
    st.top() = 999;
    std::cout << st.top() << '\n';   // prints 999
    std::cout << st.size() << '\n';  // prints stack size

    system("pause");
}