Listy dowiązaniowe

Zadanie AL5.1 (4 pkt.) Zaimplementuj strukturę listy dowiązaniowej (jednokierunkowej lub dwukierunkowej) niecyklicznej, bez wartownika, której elementami są słowa (czyli ciągi znaków), oraz operacje
  1. wstaw(s, L) - wstawia słowo s na początek listy L,

    drukuj(L) - wypisuje elementy listy L,

    szukaj(s, L) - zwraca wskaźnik na węzeł listy zawierający słowo s o ile takie słowo znajduje się na liście L, w przeciwnym wypadku zwraca NULL,

    usuń(s, L) - usuwa z listy L węzeł zawierający słowo s o ile takie słowo znajduje się na liście,

    (ta grupa operacji: razem 3pkt.)
  2. bezpowtorzeń(L) - tworzy kopię listy L, ale bez powtórzeń słów; zwraca wskaźnik na utworzoną kopię. Lista L pozostaje bez zmiany. (0.5 pkt.)

  3. scal(L1,L2) - tworzy listę L3 zawierającą wszystkie słowa z list L1 i L2 (również ze wszystkimi powtórzeniami); zwraca wskaźnik na utworzoną listę. Listy L1 i L2 przestają istnieć (można więc wykorzystać ich węzły do zbudowania listy L3.). Efektywne (pod względem złozoności czasowej) rozwiązanie doczepi po prostu jedną listę do drugiej. (0.5 pkt.)

Zadanie AL5.2 (5 pkt.) To samo co w zadaniu AL5.1, ale tym razem lista dowiązaniowa dwukierunkowa, cykliczna, z wartownikiem.