Opened 5 years ago

Closed 5 years ago

#212 closed ожидается проверка (задача сдана)

WW #3

Reported by: Vladislav Nosivskoy Owned by: Sokolov Viacheslav
Component: WW_intrusive_list Version: 2.0
Keywords: Cc:

Description


Change History (3)

comment:1 Changed 5 years ago by Sokolov Viacheslav

Type: ожидается проверкаожидаются исправления

Расписал ​https://wiki.compscicenter.ru/index.php/C%2B%2B_1MIT_осень_1_2019#.D0.A2.D1.80.D0.B5.D0.B1.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.BA.D0.BE.D1.80.D1.80.D0.B5.D0.BA.D1.82.D0.BD.D0.BE.D1.81.D1.82.D0.B8.2C_.D0.BF.D1.80.D0.B5.D0.B4.D1.8A.D1.8F.D0.B2.D0.BB.D1.8F.D0.B5.D0.BC.D1.8B.D0.B5_.D0.BA_.D1.80.D0.B0.D0.B1.D0.BE.D1.82.D0.B0.D0.BC и, в частности, не хватает:

  • проверок ненулевых указателей
  • желательно в функциях add_node / remove_node проверять, что вершины отсуствует / присутствует, для чего удобно сделать вспомогательный метод

на head зовется malloc, но никто не зовет free

Хотелось бы изолировать все детали реализации списка в clist.c, в частности, знание о фиктивной вершине. Для этого нужно завести дополнительные методы, которые можно именовать, например, begin(list) и end(list), которые возращают head и head->prev соответственно, а также сделать метод, который по (list, node) скажет, можно ли итерироваться дальше или нужно остановиться.

comment:2 Changed 5 years ago by Vladislav Nosivskoy

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

comment:3 Changed 5 years ago by Sokolov Viacheslav

Resolution: задача сдана
Status: assignedclosed

Ваш вывод на тест из условия

3
(1, 2) (4, 6) (3, 6) (1, 2)
Unknown command
(4, 6) (3, 6)

0
(2, -4)

правильный вывод

3
(1 2) (4 6) (3 6) (1 2)
Unknown command
(4 6) (3 6)

0
(2 -4)

Я подробнее скажу об этом на одной из следующих пар, но при следующей сдаче такая посылка получит 0 баллов. Сейчас же сниму за это 2.

Опечатка get_lenght

Именование: лучше назвать не del_list, а del_empty_list, это точнее опишет поведение

В main.c тоже можно было бы проверить ненулевые указатели, а также то, что malloc не вернет NULL

За исключением этого работа на мой взгляд хорошая, отсутствие случаев всегда радует, интерфейс списка позволяет с ним работать так, что фиктивная вершина фигурирует в пользовательском коде (если он корректен).

Note: See TracTickets for help on using tickets.