Conversation
p-senichenkov
left a comment
There was a problem hiding this comment.
18/20 (за неоптимальное решение и стайлгайд)
| int finish = getValue(numbers, j); | ||
| if (start != finish) { | ||
| // printf("NOT palindrom\n"); | ||
| isPalindrom--; |
There was a problem hiding this comment.
Никогда так не делайте.
| isPalindrom--; | |
| isPalindrom = 0; |
А лучше, #include <stdbool.h> и
| isPalindrom--; | |
| isPalindrom = false; |
| for (int i = 0; i < len; i++) { | ||
| printf("Введите число\n"); | ||
| scanf("%d", &value); | ||
| insertNum(numbers, value); | ||
| } |
There was a problem hiding this comment.
В такой реализации этот цикл имеет квадратичную сложность. А можно довольно легко получить линейную. Подумайте, как.
Если ничего не придумается, посмотрите на https://en.cppreference.com/w/cpp/container/forward_list/insert_after.html.
| int start = getValue(numbers, i); | ||
| int finish = getValue(numbers, j); |
There was a problem hiding this comment.
Если вдруг понадобилось обращаться по индексу в связном списке, скорее всего, Вам нужен динамический массив, а не список. А здесь можно можно начать с первого элемента и переходить по next. Правда, для этого понадобится двусвязный список, но его реализовать так же легко, как и односвязный.
Понятно, что такая реализация проще (особенно, если Вы скопировали список из одной из предыдущих домашек), но она сильно проигрывает оптимальной в эффективности.
| @@ -0,0 +1,21 @@ | |||
| #ifndef LIST_H | |||
There was a problem hiding this comment.
По стайлгайду нельзя использовать include guards.
И всё остальное тоже отформатируйте. Вообще, надо настроить clang-format в CI, чтобы он автоматически всё проверял.
q