Ноябрь-декабрь 2021
Задача 1
Прочитать файл по строкам. Для каждой строки определить сбалансированность круглых и квадратных скобок. Если строка сбалансирована вывести встандартный поток число 1
, в противном случае - число 0
. Примеры сбалансированных строк:
()
()[]()
[()()]
[()]()
Примеры несбалансированных строк:
)
(]
(()()]
())
Строки могут содержать любые символы, не только скобки.
Задача 2
Завершите реализацию связного списка и запустите следующую программу:
int main() {
LinkedList l = list_init();
for (int i = 1; i < 5; ++i) {
list_push_front(&l, i * i);
list_push_back(&l, i * i);
}
list_print(&l);
while (l.size) {
list_pop_front(&l);
list_print(&l);
}
list_print(&l);
return 0;
}
Корректно реализованная программа выведет в консоль следующий текст:
16 -> 9 -> 4 -> 1 -> 1 -> 4 -> 9 -> 16
9 -> 4 -> 1 -> 1 -> 4 -> 9 -> 16
4 -> 1 -> 1 -> 4 -> 9 -> 16
1 -> 1 -> 4 -> 9 -> 16
1 -> 4 -> 9 -> 16
4 -> 9 -> 16
9 -> 16
16
Задача 3
Релизуйте структуру данных очередь любым из двух способов, который мы обсуждали. Проверьте Вашу реализацию, запустилв следующую программу:
int main() {
Queue q = queue_init();
for (int i = 1; i < 10; ++i) enqueue(&q, i * i);
for (int i = 1; i < 10; ++i) printf("%d ", dequeue(&q));
putchar('\n');
return 0;
}
В консоли должен появиться вывод:
1 4 9 16 25 36 49 64 81