Cześć,
jestem studentem informatyki i mam następujący problem (w zasadzie zadanie) do rozwiązania:
Dane są dwie listy proste przechowujące klucze typu key. Odkładaj na stos naprzemiennie elementy z listy pierwszej spełniające warunek cond_1 i elementy z listy drugiej spełniające warunek cond_2. Odkładane elementy usuwaj z list. Dla listy przyjmij implementację wskaźnikową. Dla stosu przyjmij implementację tablicową (max. liczba elementów tablicy to N).
Zadanie rozumiem, listę oraz stos zaimplementowałem. Problem pojawia się, w jaki sposób znaleźć elementy spełniające warunek korzystając z elementarnych działań na liście. Mam metodę realizującą wyszukiwanie, która jako argumenty przyjmuje wskaźnik na element listy oraz wartość klucza (przeciążona inną, która w argumencie przyjmuje wyłącznie klucz - wtedy wyszukiwanie rozpoczyna się od pierwszego elementu), a zwraca wskaźnik do znalezionego elementu. Usuwanie odbywa się poprzez przekazanie wskaźnika do danego elementu jako argumentu funkcji.
Załóżmy, że liczby spełniające warunek to liczby parzyste. Jedyny sposób aby znaleźć dany element to iterowanie po wszystkich liczbach parzystych oraz przekazywanie ich do funkcji i sprawdzaniu kiedy zwrócony wskaźnik będzie inny niż NULL.
Wcześniej wymienione elementarne działania to:
-wyszukiwanie elementu
-usuwanie elementu przekazując wskaźnik
-dodawanie elementu
-przeglądanie elementów listy