Skip to the content.

Ноябрь-декабрь 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