Witam, otóż mam problem z usuwaniem elementu z listy dwukierunkowej. Struktura wygląda tak:
struct Lista{
int element;
Lista* Next;
Lista* Prev;
};
zaś sama funkcja usuwania dla listy jednokierunkowej wyglądałaby tak:
int UsunElement(Lista*& poczatkowy, int wartosc)
{
if(poczatkowy->element == wartosc)
{
Lista* StaryPoczatkowy = poczatkowy;
poczatkowy = poczatkowy->Next;
delete StaryPoczatkowy;
return 1;
}
Lista* ObecnaLiczba = poczatkowy;
while(ObecnaLiczba->Next && wartosc > ObecnaLiczba->Next->element)
{
ObecnaLiczba = ObecnaLiczba->Next;
}
if(ObecnaLiczba->Next->element == wartosc)
{
Lista* OldNext = ObecnaLiczba->Next;
ObecnaLiczba->Next = ObecnaLiczba->Next->Next;
delete OldNext;
return 1;
}
return 0;
}
Lecz nie wiem jak to zmienić, aby działało na liście dwukierunkowej.