Домашнее задание №12

Доделать основные и дополнительные задачи лабораторной работы №12.

Односвязный список

О линейном односвязном списке читать здесь или здесь. Перед выполнением работы скачайте заготовку.

В отдельном файле hw12.h сделать следующие задачи 

  1. Создать функцию, которая создаёт односвязный список из n элементов, заполненный случайными числами
    node<int> * createRandomIntList(int n = 10, int min = 0, int max = 20);
    
  2. Дан линейный односвязный список целых чисел (то есть указатель на его первый элемент). Найти сумму его элементов. Если список пуст, вернуть 0. (В этой задаче и  во всех следующих запрещается использовать циклы)
    int listSum(node<int>* head);
    
  3. Дан непустой (не забудьте это проверить) линейный односвязный список (то есть указатель на его первый элемент). Найти указатель на его последний узел.
    template<class T>
    node<T> * lastNode(node<T>* head) 
    
  4. Дан линейный односвязный список. Найти количество его элементов.
    template<class T>
    int quantity(node<int>* head)
  5. Дан линейный односвязный список целых чисел. Вернуть значение его минимального элемента (если список пуст, вернуть MAX_INT).
    int listMin(node<int>* head);
Продемонстрировать в основной программе использование функций.