Здравствуйте, Alexander Pazdnikov, Вы писали:
AP>.Q
AP>8. Предположим, есть реализация dequeue в виде двусвязного списка (то
AP> есть есть указатели на предыдущий и следующий элементы). А
AP> возможна ли реализация, где для связи узлов используется только
AP> одно слово вместо двух (то есть мы хотим сэкономить одно слово
AP> размера sizeof(struct node *))?
AP>.A
AP>Полагаю, речь идёт о циклическом буфере или контейнере где есть указатель на начало и указатель на конец, элементы включают указатель только на следующий элемент. Проход односторонний, с конца в начало.
Похоже, спрашивается про
XOR-связный список.
AP>.Q
AP>9. Предположим, что в многопоточной программе в одном потоке
AP> выполняется код
AP> a = 3;
AP> b = 1;
AP> а в другом потоке
AP> if (b == 1)
AP> sum += a;
AP> (оба потока видят одни и те же а и b, блокировок нет). Если
AP> условие выполнится, то на сколько увеличится sum?
AP>.A
AP>либо на 3, либо на 6.
Без
барьеров памяти на 3 или значение a до изменения.