lista dwukierunkowa- problem

0

Witam,
mam taki drobny (być może banalny) problem przy tworzeniu listy dwukierunkowej, a konkretnie z przypisywaniem poprzedników

#include<iostream>
using namespace std;

struct element{
int numer;
element* nast;//wskaznik do nastepnego elementu listy
//element* pop;
};

int main(int argc, char* argv[])
{
element* lista=NULL;//wskaznik do listy, ustawiony na poczatek
int n = 6;//liczba elementow listy

while(n>0){
    element* nowy_elem;//wskaznik do nowego elementu
    nowy_elem = new element;

    cin>>nowy_elem->numer;
    nowy_elem->nast = lista;
    lista = nowy_elem;

    n--;
}

system("pause");
return 0;
}

Program tworzy listę 6 elementów.
W jaki sposób przypisać tutaj poszczególnym elementom również poprzedniki. Piszę, bo jak na razie moje próby kończą się błędami w działaniu programu. Dodam, że internet póki co nie pomógł mi w rozwiązaniu problemu;P
z góry dziękuje za odpowiedź;)

ps: jestem początkujący w tej dziedzinie, więc proszę o wyrozumiałość;P

1
while(n>0){
        element* nowy_elem;//wskaznik do nowego elementu
        nowy_elem = new element;

        cin>>nowy_elem->numer;
        nowy_elem->nast = lista;

        **nowy_elem->pop = NULL;**
        **lista->pop = nowy_elem;**

        lista = nowy_elem;

        n--;
}
0

hmm, szczerze próbowałem dokładnie w ten sposób to zrobić, ale niestety program nie działał prawidłowo...
tak jakby nie wychodził z pętli, bo po wpisaniu pierwszej wartości (numer) kolejnych już się nie da, program się zatrzymuje, chociaż bez żadnych błędów ani ostrzeżeń...Koduje na Turbo C++, ale sprawdzałem to również na Dev C++ i to samo;/

0

Bo przy pierwszym obiegu pętli lista jest NULLem.

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