Conversation
| } | ||
|
|
||
| // проверка симметричности | ||
| int isSymmetric(Node* head) { |
There was a problem hiding this comment.
Идея с разворотом половины списка очень крутая, но почему-то эта функция полностью совпадает с решением Михаила Васильева, вплоть до имён переменных.
Пока баллы за эту задачу ставить не буду. Скорее всего, эту контрольную надо будет переписать.
There was a problem hiding this comment.
Здесь всё хорошо. Битовые операции используются только в простом случае (можно было циклический сдвиг делать тоже с их помощью), так что за них только +2 балла.
p-senichenkov
left a comment
There was a problem hiding this comment.
За симметричный список максимум баллов снижается вдвое (за подозрение в списывании). +5 баллов за использование оптимального алгоритма. -1 за то, что оптимальный алгоритм испорчен неоптимальным main, -2 за остальные замечания. Итого 12/20.
В ближайшую пятницу будет переписывание.
| continue; | ||
| } | ||
|
|
||
| append(&head, number); |
There was a problem hiding this comment.
Из-за того, что здесь нужно каждый раз ходить по списку до конца, получается квадратичная сложность. Хотя, Вы использовали оптимальный алгоритм, который работает за два прохода. Надо было сделать как-то так:
Node* curr = head;
int num;
while (...)
scanf("%d", &n);
curr->next = NewNode(n);
curr = curr->next;И, что интересно, та же ошибка есть у Михаила и Александры.
| @@ -0,0 +1,24 @@ | |||
| // структура узла списка | |||
There was a problem hiding this comment.
Должен быть #pragma once. Иначе не слинкуется.
| } | ||
|
|
||
| // Восстанавливаем список | ||
| reverseList(secondHalfCopy); |
There was a problem hiding this comment.
Это не сработает. Подумайте, что сделает эта функция?
No description provided.