Witam, próbuję zrozumieć implementację stosu na język c++ ze strony algorytm.org.
Oprócz ogólnego zagmatwania nie rozumiem zapisu dwóch gwiazdek obok siebie. Udało mi się dowiedzieć, że ma to jakiś związek z tablicami kilkuwymarowymi, ale jaki jest ten związek i co tablice dwuwymiarowe robią w tym programie - tego już nie wiem. Byłbym bardzo wdzięczny za objaśnienie mi tej implementacji bo jest to dla mnie bardzo kłopotliwe a jednocześnie bardzo ważne. Kod z algorytmu wstawiam poniżej.
/stos
//www.algorytm.org
#include < iostream >
using namespace std;
struct liczba
{
int wartosc;
liczba *next;
};
//dodaj element do stosu (root)
void dodaj (liczba **root)
{
liczba *nowa=new liczba;
cin>>nowa->wartosc;
nowa->next=*root;
*root=nowa;
}
//zdejmij element ze stosu (root)
void zdejmij (liczba **root)
{
if (*root) //sprawdz czy stos nie jest juz pusty
{
liczba *temp=*root;
*root=(*root)->next;
cout<<temp->wartosc<<endl;
delete temp;
}
}
int main()
{
char warunek;
liczba *root=NULL, *nowa = NULL;
while (cin>>warunek)
{
switch (warunek)
{
case 'd': //dodaj element do stosu
dodaj(&root);
break;
case 'z':
zdejmij(&root); //zdejmi element ze stosu
break;
case 'k': //zakoncz program
return 0;
}
}
return 0;
}