Структури от данни и програмиране
І курс, 13.05.2002 г.

Трета курсова задача

Номерът на курсовата задача се получава като резултат от операцията "остатък от целочислено деление" в С++. Първият аргумент на операцията е факултетният номер на студента, а вторият аргумент е числото 23 (ф.н. % 23).

Задачите с номера са от учебника на Кай Хорстман. За решаване на всички задачи могат да се използват класовете от примерите в учебника: list2.cpp или list3.cpp. По желание може да се използва и шаблона list от STL (list1.cpp). Написва се цялостна програма, разделена на модули, включително функция за създаване на свързан списък и тестваща функция. Демонстрира се работата на всички написани функции при различни входни данни. Ако в задачата не е указан типа на елементите на свързания списък, да се работи с тип string.



00. Задача 13.6.

01. Задача 13.7 + 13.8.

02. Задача 13.10.

03. Задача 13.12.

04. Задача 13.15.

05. Задача 13.16.

06. Напишете функция, която слива два сортирани свързани списъци в един сортиран свързан списък (merge sort).

07. Напишете функция за последователно търсене в свързан списък.

08. Напишете функция, която добавя в края на списъка S1 всички елементи на списъка S2.

09. Напишете функция, която определя дали списъкът S1 се съдържа в списъка S2.

10. Напишете функция, която установява, че всички елементи на свързания списък са различни.

11. Напишете функция, която изтрива от свързан списък всички елементи със зададена стойност.

12. Напишете функция, която изтрива от свързан списък първия срещнат елемент със зададена стойност, ако такъв съществува.

13. Напишете функция, която изтрива от свързан списък всички елементи, които се срещат повече от  веднаж.

14. Напишете функция, която изтрива от свързан списък всички дублиращи се елементи.

15. Напишете функция, която добавя елемент в свързан списък, ако в списъка няма елемент с такава стойност.

16. Напишете функция, която създава списък S, като включва в него по веднъж елементите, които принадлежат на поне един от двата списъка S1 и S2.

17. Напишете функция, която създава списък S, като включва в него по веднъж елементите, които принадлежат едновременно и на двата списъка S1 и S2.

18. Напишете функция, която създава списък S, като включва в него по веднъж елементите, които принадлежат на списъка S1, но не принадлежат на списъка S2.

19. Да се реализира алгоритъма за сортиране чрез селекция върху свързан списък.

20. Да се реализира двоично търсене върху свързан списък.

21. Напишете функция, която създава свързан списък, чиито елементи са дублиращите се елементи на даден свързан списък.

22. Напишете функция, която създава свързан списък, чиито елементи са елементи на даден свързан списък, които удовлетворяват условие от вида по-голямо.