Witam, zaczynam naukę z programowaniem obiektowym w c++. Za zadanie miałem implementację stosu obiektowo. Wszystko działa więc jest chyba dobrze, ale jak coś ze składnią źle czy jakiś inny błąd to proszę o zwrócenie uwagi.
Teraz klasę Stack mam przerobić na wersję listową.
Różnicą będzie wykorzystanie w wewnętrznej implementacji własnej klasy ListElem(element listy jednokierunkowej), dzięki czemu zniknie ograniczenie na liczbę elementów w stosie.
Nie rozumiem zbytnio tego polecenia i potrzebuję pomocy.
#include <iostream>
const int MAX = 100;
using namespace std;
class Stack {
private:
int n; //aktualna liczba elementów na stosie
int data[MAX]; //tablica przechowująca elementy
public:
Stack(int tab[], int size)
{
cout << "Tworze nowy stos" << endl;
n=0;
for (int i=0;i<size;i++)
{
push(tab[i]);
}
}
int pop(){
return data[--n];
}
void push (int x){
data[n++]=x;
}
bool empty()
{
return !n;
}
int size()
{
return n;
}
int top()
{
return data[n];
}
~Stack(){
cout<<"Niszcze stos z "<<n<<" elementami"<<endl;
//... wtedy tylko gdy uzywamy dynamiczna pamiec
}
};
int main()
{
int t[4]={5,10,15,20};
Stack stack(t,4);
stack.push(3);
cout<<stack.size()<<endl;
cout<<stack.top()<<endl;
while(!stack.empty())
{
cout<<stack.pop()<<endl;
}
return 0;
}