Opened 5 years ago
Closed 5 years ago
#249 closed ожидается проверка (задача сдана)
WW #3
Reported by: | chistyakova.polina | Owned by: | Дмитрий Лапшин (lapshin) |
---|---|---|---|
Component: | WW_intrusive_list | Version: | |
Keywords: | Cc: |
Description
Не смогла... До последнего пыталась разобраться, но что-то не вышло... Можешь посмотреть, пожалуйста, что именно тут не так?
Change History (1)
comment:1 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
Ну поехали.
init_list
: ты решила сделать фиктивный элемент. Похвально, но выделять его на куче лишнее. Раз он всегда в списке нужен, пустьhead
будет не указателем, а значением.add_node
: а всё правильно)remove_node
: у тебя же фиктивный элемент, какойif (list->head != node)
?free
. Не ты завела этот указатель — не тебе его и удалять. Тем болееnode
указывает внутрь структуры, которая является элементом списка: говорят, что список не владеет своими значениями (не он управляет их жизнью, потому что… не может).get_length
: Здесь и далее:element != element->next
что проверяет? Мне кажется что-то очень редкое, типа следующий элемент есть, но он мы сами… В твоей реализации следующий элемент всегда есть, но бежать надо до фиктивного элемента: список зациклен. Твой цикл должен быть, например:add_point
: что происходит?malloc
бы на результат проверить…struct point
. В ней есть полеstruct node
. Ты именно его и кладёшь в список. Зачем выделять второй? От того, что ты одну структуру присвоишь в другую, адрес-то и где она живёт не сменится!add_node(list, &newPoint->node);
(взяли адрес на поле структурки с новой точкой, её ввязали в список).remove_point
:element
указывает внутрьpoint
,point
ты удалила, дальше обращаешься кelement->next
, оооооой. Надо бы нежнее:main
можно было без выделения памяти под буфер.А дальше-то всё в целом мудро.
Стиль:
a < b
,x = y
,3 != 4
. Исключение стрелочка, потому что она скорее точка, чем оператор вычисления.Вердикт:
4/12 тут есть. Удачи в будущих баталиях.