Cześć !
Chciałbym się poradzić czy dobrze rozumiem, zapisany kod bo niestety zapętla mi się on i nie widzę błędu.
Tak wygląda moja struktura listy
struct Slista
{
string napis;
Slista* nastepny;
};
i sprawiający kawałek kodu.
if (pozycja == 1)
{
aktualny = new Slista;
cin.ignore();
getline(cin, aktualny->napis);
aktualny->nastepny = glowa;
glowa = aktualny;
}
else if (pozycja > 1 && pozycja != n)
{
nastepny = glowa;
for (int i = 1; i < pozycja; i++)
{
aktualny = aktualny->nastepny;
}
aktualny = new Slista;
aktualny->nastepny->nastepny = kolejny;
cin.ignore();
getline(cin, aktualny->napis);
}
Nie jestem do konca przekonany jestem czy dobrze rozumuje zapisywanie przed wybrany element do list jednokierunkowych.
W else if postanowiłem najpierw określić za pomocą pętli for adres wskaznika na pozycji ntej.
Nastepnie tworze nowy kubełek dla aktualnego. W nastepnej linii okreslam ze nastepny adres kolejnego wskaznika.
No i na koncu zapisuje w aktualnym nowy napis.
Niestety tak zapisana funkcja zapetla sie.
Prosiłbym o jakieś wskazówki jak to rozwiązać.
Pozdrawiam