Сортированный список. Кальсина Яна. Б43.#18
Сортированный список. Кальсина Яна. Б43.#18yaprogrammer18-yanchi wants to merge 6 commits intomainfrom
Conversation
ilya-krivtsov
left a comment
There was a problem hiding this comment.
В целом хорошо, в паре мест просто добавить проверку того, что память действительно выделилась
| @@ -0,0 +1,117 @@ | |||
| #include "OneLinkedList.h" | |||
There was a problem hiding this comment.
list.h вполне нормальное название, но ладно
| typedef struct ListNode ListNode; | ||
|
|
||
| struct ListNode { | ||
| int value; | ||
| struct ListNode* next; | ||
| }; |
There was a problem hiding this comment.
это то же самое, что и
| typedef struct ListNode ListNode; | |
| struct ListNode { | |
| int value; | |
| struct ListNode* next; | |
| }; | |
| typedef struct ListNode { | |
| int value; | |
| struct ListNode* next; | |
| } ListNode; |
но так тоже можно
|
|
||
| List* newList() | ||
| { | ||
| List* list = calloc(1, sizeof(*list)); |
There was a problem hiding this comment.
Так можно, но лучше (как мне кажется) аллоцировать как угодно (malloc/calloc), и явно проинициализировать поля
| return list; | ||
| } | ||
|
|
||
| bool isEmpty(List* list) { return list->head == NULL; } |
There was a problem hiding this comment.
Желательно чтобы все методы были в одном стиле
| bool isEmpty(List* list) { return list->head == NULL; } | |
| bool isEmpty(List* list) { | |
| return list->head == NULL; | |
| } |
| if (list == NULL) { | ||
| return false; | ||
| } | ||
| ListNode* newNode = malloc(sizeof(ListNode)); |
There was a problem hiding this comment.
Нужно сделать проверку, что память действительно выделилась
| /* | ||
| * функция создания нового списка | ||
| * ничего не принимает | ||
| * возвращает указатель на список | ||
| */ | ||
| List* newList(); |
There was a problem hiding this comment.
Если функция ничего не принимает, то это сразу видно и можно не писать в комментарии :)
| if (list == NULL) { | ||
| return false; | ||
| } |
There was a problem hiding this comment.
Вообще free(NULL) - вполне нормальная операция, поэтому можно разрешить и то, что list - NULL, но так тоже можно
| int c; | ||
| while ((c = getchar()) != '\n') { } |
There was a problem hiding this comment.
Можно просто
| int c; | |
| while ((c = getchar()) != '\n') { } | |
| while (getchar() != '\n') { } |
| return; | ||
| } | ||
| clearInputBuffer(); | ||
| insert(list, element); |
There was a problem hiding this comment.
insert возвращает bool, значит надо его проверить
| if (removeElement(list, value)) { | ||
| printf("Элемент успешно удален.\n"); | ||
| } else { | ||
| printf("Что-то пошло не так. Возможно введено неверное значение.\n"); |
There was a problem hiding this comment.
Тут скорее стоит написать, что значения нет в списке, потому что false возвращается если список - NULL (а такого почти никогда не происходит), список пустой или элемент не найден; пустой список => никакого элемента в нём не найти
Добавила все файлы для задачи "Сортированный список" в том числе и Cmake.