Сформировать новую последовательность из элементов текущей - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дана последовательность из n целых элементов. Сформировать новую последовательность, в которой сначала расположены в порядке возрастания все четные (по индексу) элементы исходной последовательности, а затем в порядке убывания все не- четные. Все последовательности: исходную и полученную вывести на экран.

Решение задачи: «Сформировать новую последовательность из элементов текущей»

textual
Листинг программы
int ff01(Listt *z){ //?
    int k;
    Listt *q;
    if (z == NULL)
        return 0;
    for (q = z, z = z->next, k = 1; z != q; k++, z = z->next);
    return k;
}

Объяснение кода листинга программы

В данном коде функция ff01() принимает в качестве аргумента ссылку на голову списка (Listt *z). Если список пуст, то функция возвращает 0. В противном случае, инициализируется счётчик (k) и переменная q, которая будет хранить ссылку на элемент списка. Затем начинается цикл, который продолжается до тех пор, пока не будет найден элемент, равный q. Значение k увеличивается на единицу после каждой итерации цикла. Когда цикл завершится, функция возвращает k, то есть количество элементов в списке.

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы