Witam,
Proszę o jakieś łopatologiczne wytłumaczenie (może kawałek pseudokodu) w jaki sposób w liście jednokierunkowej usunąć ostatni element. Jestem początkujący. Po przejrzeniu całego internetu udało "mi " się zrobić coś takiego:
class element
{
public:
element *nastepny;
int wartosc;
};
void dodaj(element *&root, int dana)
{
element *list = new element();
list->wartosc = dana;
list->nastepny = NULL;
if(root==NULL)
{
root=list;
}
else
{
element *tmp=root;
while(tmp->nastepny)
tmp=tmp->nastepny;
tmp->nastepny=list;
}
}
void usun_pierwszy(element* &w)
{
element *tmp=new element;
if(w==NULL)
{
cout << "Lista jest pusta :( ";
}
else
{
tmp=w->nastepny;
delete w;
w=tmp;
}
}
void usun_ostatni(element* &w)
{
}
mam usuwanie pierwszego elementu ale nie wiem jak usunąć ostatni, tzn. wiem tyle, że trzeba ustawić wskaźnik przedostatniego elementu na NULL a ostatni usunąć ale w ogóle nie mam koncepcji jak to zrobić.
Dzięki za wszelaką pomoc [soczek]