Тема: Реалізувати програму через стек С++
Не можу розібратись зі стеком  
  Як цю програму можна реалізувати стеком?
#include <stdio.h>
#include <conio.h>
#include <locale>
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void main()
{
     setlocale(0,""); 
    int n=6;
    int a[6];
    int min;
    cout<<"Початковий стек"<<endl;
    int mi=0;
    for (int i=n;i>0;i--)
    {    
        a[i]=(rand()%20)-10;
        cout<<a[i]<<" ";    
    }
    min=a[0];
    for (int i=0;i<n;i++)
    {
        if (a[i]<min) 
            {
                min=a[i];
                mi=i;
            }
    }
    cout<<endl<<"Кiнцевий стек"<<endl;
    int t;
    int q=a[mi+1];
    int w=a[mi+2];
    a[mi+1]=w;  a[mi+2]=q;
    for (int i=n;i>0;i--)
    {
        cout<<a[i]<<" ";
    }
    min=100000;
    mi=-1;
    for (int i =n; i>0;i--)
    {if (a[i]<min) 
            {
                min=a[i];
                mi=i;
            }
    }
    cout<<endl<<"Мiн елемент: "<<min<<endl;
    _getch();
    exit(1);
}
 (змінні min1 i min2)