Conversation
p-senichenkov
left a comment
There was a problem hiding this comment.
Палиндром: 23/20
Циклический сдвиг: 1/10
|
|
||
|
|
||
| void initList(List* list) { | ||
| (*list).head = NULL; |
There was a problem hiding this comment.
Вы мне говорили, что научились пользоваться оператором ->. А здесь снова это. Вы что ли изучали C в ночь после контрольной?
There was a problem hiding this comment.
Да, я помню про ->. Мне (*p). больше нравится, так понятнее что я делаю.
Если больше одного раза приходится разыменовывать, например, node->next->next->value или ((*(*(*node).next).next).value)
В этом случае через -> понятнее и проще
-> быстрее пишется, может так скоро начну писать и для одного разыменования
| (*list).size = 0; | ||
| } | ||
|
|
||
| void addValue(List* list, int value) { |
There was a problem hiding this comment.
Элемент добавляется в начало списка, да? Надо бы как-то это указать. Естественно, самый предпочтительный вариант -- в имени функции: addValueToFront. Или хотя бы в комментарии.
Кстати, комментарии недо не забывать писать. Формально на контрольной можно снижать баллы за отстутсвие комментариев.
|
|
||
|
|
||
|
|
| int size = (*list).size; | ||
| for (int i = 0; i < size; i++) { | ||
| int value = (*head).value; | ||
| addValue(&listReverse, value); |
There was a problem hiding this comment.
Вот тут оно и стреляет. Если не вчитываться в код addValue, кажется, что список просто копируется, и непонятно, где он разворачивается.
| for (int i = 0; i < n; i++) { | ||
| int a; | ||
| scanf("%d", &a); | ||
| addValue(&list, a); |
There was a problem hiding this comment.
Кажется, Ваш алгоритм работает за O(n). За это я всем добавлял по 5 дополнительных баллов.
|
|
||
| int n; | ||
| printf("Введите число: "); | ||
| scanf("%d", &n); |
There was a problem hiding this comment.
Нет, тут надо наоборот. Вводится массив, а вывести надо число.
No description provided.