Тема: Стек, перевірка на наявність елементів
Допоможіть мені розібратися із програму, в функції Perevirka перевіряє чи є елементи в стеку якщо немає то створює перший елемент стеку, але там стоїть яво неправильне порівняння
 if ((*Begin)->data == -1)  я не знаю як перевірити чи є елементи в стеку.І ще одна проблема я невпевнений що моя програма дійсно стек і взагалі яка є різниця між стеком і лінійним списком поясніть.
#include <iostream>
#include <conio.h>
using namespace std;
struct MyStruct
{
    int data;
    MyStruct *next;
    MyStruct();
};
MyStruct::MyStruct()
{
    data = -1;
}
void Print(MyStruct *One)
{
    MyStruct *Prin = One;
    do
    {
        cout << Prin->data << " ";
    } while (Prin = Prin->next);
}
bool Perevirka(MyStruct **Begin,int i)
{
    if ((*Begin)->data == -1)
    {
        (*Begin)->data = i;
        (*Begin)->next = NULL;
        return false;
    }
    else
        return true;
}
void App(MyStruct **Begin,int i)
{
    if (false==Perevirka(Begin, i))
        return;
    MyStruct *El = new MyStruct;
    El->data = i;
    El->next = NULL;
    (*Begin)->next = El;
    (*Begin) = El;
}
int main()
{
    MyStruct *Begin;
    Begin = new MyStruct;
    MyStruct *One = Begin;
    for (int i = 0; i <= 100; i += 10)
        App(&Begin, i);
    Print(One);
    getch();
    return 0;
}