Skip to content

Иванова Алина. Решение контрольной работы 2#16

Open
ialina07 wants to merge 1 commit intomainfrom
kr2
Open

Иванова Алина. Решение контрольной работы 2#16
ialina07 wants to merge 1 commit intomainfrom
kr2

Conversation

@ialina07
Copy link
Owner

@ialina07 ialina07 commented Dec 5, 2025

No description provided.

}

// проверка симметричности
int isSymmetric(Node* head) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Идея с разворотом половины списка очень крутая, но почему-то эта функция полностью совпадает с решением Михаила Васильева, вплоть до имён переменных.

Пока баллы за эту задачу ставить не буду. Скорее всего, эту контрольную надо будет переписать.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здесь всё хорошо. Битовые операции используются только в простом случае (можно было циклический сдвиг делать тоже с их помощью), так что за них только +2 балла.

Copy link
Collaborator

@p-senichenkov p-senichenkov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

За симметричный список максимум баллов снижается вдвое (за подозрение в списывании). +5 баллов за использование оптимального алгоритма. -1 за то, что оптимальный алгоритм испорчен неоптимальным main, -2 за остальные замечания. Итого 12/20.

В ближайшую пятницу будет переписывание.

continue;
}

append(&head, number);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Из-за того, что здесь нужно каждый раз ходить по списку до конца, получается квадратичная сложность. Хотя, Вы использовали оптимальный алгоритм, который работает за два прохода. Надо было сделать как-то так:

Node* curr = head;
int num;
while (...)
    scanf("%d", &n);
    curr->next = NewNode(n);
    curr = curr->next;

И, что интересно, та же ошибка есть у Михаила и Александры.

@@ -0,0 +1,24 @@
// структура узла списка
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Должен быть #pragma once. Иначе не слинкуется.

}

// Восстанавливаем список
reverseList(secondHalfCopy);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это не сработает. Подумайте, что сделает эта функция?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants