Conversation
There was a problem hiding this comment.
Вообще в задаче написано, что стек должен быть реализован в отдельной ветке, от которой отводятся другие две ветки. Это придётся сделать.
| struct Stack* next; | ||
| }; | ||
|
|
||
| struct Stack* push(struct Stack* stack, int value) |
There was a problem hiding this comment.
Дизайн интересный, и был бы очень хорош в функциональном языке, но в Си приводит к ошибкам. Лучше сделать отдельную структуру для элемента стека и стуктуру-обёртку, которая будут передаваться в функции, тогда пользователю не нужно будет знать, что у него ничего о внутреннем устройстве стека
| struct Stack* pop(struct Stack* stack, int* value) | ||
| { | ||
| if (stack == NULL) | ||
| return NULL; |
There was a problem hiding this comment.
Не лучшее решение. В такой реализации мы не отличим был ли пуст стек, или мы забрали последний элемент из него.
Когда будете переписывать, Вам будет полезно знать про две стратегии реализации pop и peek.
- Проверять пустоту стека прямо в функции и тогда применять errorCode/присваивание по указателю (как здесь)
- Заставить пользовавателя проверять в своём коде, что стек не пуст
| struct Stack* new(void) | ||
| { | ||
| return NULL; | ||
| } |
There was a problem hiding this comment.
А правда в таком случае в этой функции вообще есть смысл? И, кстати, лучше не использовать new и delete, потому что это ключевые слова C++ и инструменты могут на них орать.
| int numTests = sizeof(tests) / sizeof(tests[0]); | ||
|
|
||
| for (int i = 0; i < numTests; i++) { | ||
| printf("String: \"%s\" is %s\n", tests[i], isBalanced(tests[i]) ? "сбалансирована" : "не сбалансирована"); |
There was a problem hiding this comment.
:) Интересный русско-английский у Вас вывод
| return balanced; | ||
| } | ||
|
|
||
| int main(void) { |
There was a problem hiding this comment.
Кстати, это не по кодстайлу
No description provided.