Listy c.d.

Plik z pomocniczą implementacją listy w języku C: wskazniki.c.

Zadanie 1: Lista dwukierunkowa bez wartownika (2 pkt)

Dla listy dwukierunkowej bez wartownika (przechowująca liczby całkowite), zaimplementuj i przetestuj następujące procedury:

  • tail(head) - zwraca ostatni element listy po podaniu głowy listy,
  • modalna(head) - zwraca klucz elementu środkowego listy, jeśli liczba elementów listy jest parzysta to zwraca średnią dwóch elementów środkowych,
  • bsort(head) - sortuje listę metodą bąbelkową i ją wyświetla.
Lista i jej procedury muszą opierać się na wskaźnikach. Konstrukcja listy powinna być taka, że głowa jest elementem pierwszym, a gdy wstawiamy nowy element to wskakuje on na pierwsze miejsce i staje się nową głową. Przykład:
procedury

Zadanie 2: Lista list(2 pkt)

Zaimplementuj listę dwukierunkową bez wartownika L, która będzie przechowywała nie liczby a... listy jednokierunkowe bez wartownika przechowujące liczby całkowite jako klucze. Napisz i przetestuj procedury:

  • makelist - uzupełniającą listę L listami jednokierunkowymi o różnej długości i różnych wartościach kluczy
  • max(head) - dla danej listy L wypisze elementy maksymalne z wszystkich list jednokierunkowych w niej zawartych