Listy dowiązaniowe

Zadanie z4.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) - wstawia słowo s na początek listy

    drukuj - wypisuje elementy listy

    szukaj(s) - zwraca węzeł listy zawierający słowo s o ile takie słowo znajduje się na liście, a w przeciwnym wypadku zwraca None,

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

    (ta grupa operacji: razem 2 punkty)
  2. bezpowtorzeń(L) - tworzy kopię listy L, ale bez powtórzeń słów; zwraca utworzoną kopię. Lista L pozostaje bez zmiany. (1 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ą być używane, (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. (1 pkt.)

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