Dynamiczny stos

0

Witam,
Mam zadanie aby zrobić dynamiczny stos, zrobiłem statyczny, ale nie wiem jak go przerobić na dynamiczny aby można było wpisać dowolną ilość elementów oraz gdy w momencie napisu "STOP" wypisuje w LIFO te elementy bez napisu stop.
np. dane wejściowe
Hello!
I am
123
STOP

dane wyjściowe
123
I am
Hello!

#include <iostream>
using namespace std;

struct element
{
 string wartosc;
 element *poprzedni;
};

element *dodaj (string liczba, element *wierzcholek)
{
 element *wsk;
 wsk = new element;
 if (!wsk) return 0;
 wsk->wartosc=liczba;
 wsk->poprzedni=wierzcholek;
 return wsk;
}

void wypisz (element *wsk)
{
 while (wsk!=NULL)
 {
  cout<<wsk->wartosc<<endl;
  wsk=wsk->poprzedni;
 }
 cout<<endl;
}

int main()
{
 int n;
 string k;
 element *wierzcholek;
 wierzcholek=NULL;
 cout<<"podaj, ile elementow wlozyc na stos: ";
 cin>>n;
 for(int i=0;i<n;i++)
 {
  getline(cin,k);
  wierzcholek=dodaj(k,wierzcholek);
 }
 cout<<endl;
 wypisz(wierzcholek);
 return 0;
}

0

Jeśli masz zrobić stos, to raczej nie chodzi o to abyś używał listy. Zrób dynamiczną tablicę, użyj do tego malloc/realloc.

0

może i się ze mną nie zgodzicie ale proponowałbym zrobić tzw. "bufor kołowy" - fajna koncepcja, próbowałem to zrobić, mam kod, w miarę działa ale jest moooooooooooocno niedorobiony

  1. Bufor Cykliczny
  2. Tworzenie buforu cyklicznego

W miarę zaawansowania, można zrobić również tak, że jak bufor osiągnie możliwą ilość znaków, to zwiększy swój rozmiar x2

1 użytkowników online, w tym zalogowanych: 0, gości: 1