Тема: Стек, перевірка на наявність елементів
Допоможіть мені розібратися із програму, в функції 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;
}