Как определить по таблице истинности и схеме, какие логические функции присутствуют?
И как исходя из таблицы истинности писать уравнение?

Ну просто пишешь уравнение, пока все условия не пройдут.
Можно тупо каждую строку таблицы превратить в подвыражение.
Вот пример, который я только что придумал:
A B C R
1 1 1 0
1 1 0 0
1 0 1 1
1 0 0 1
0 1 1 1
0 1 0 0
0 0 1 1
0 0 0 1
Это всё в итоге превращается в примерно такое уравнение (берём все сочетания, которые в результате дают истину)
R = (A & !B & C) | (A & !B & !C) | (!A & B & C) | (!A & !B & C) | (!A & !B & !C)
Остаётся упростить:
R = A & !B | !A & ((B & C) | !B )
Таблица истинности выражает одну логическую функцию, которую можно описать по-разному (совершенная дезъюнктивная нормальная форма или соврешенная конъюнктивная нормальная форма, например, или их смешные варианты).

Мультиплексором можно описать любую таблицу истинности на n входов, если n -- количество адресных входов мультиплексора (могу рассказать подробнее каким образом, если интересно).

По самой таблице истинности структуру нельзя восстановить, если таблица не описывает какой-либо простейший логический элемент (и, или, не, и-не и т. д.).
Нельзя восстановить структуру по той причине, что одну и ту же логическую функцию можно описать по-разному (как я уже сказал выше СДНФ, СКНФ и т. д.).

Из таблицы истинности можно восстановить её функцию разными методами, один из распространённых и наглядных методов -- картами Карно. На первый взгляд выглядит как чёрная магия, но надо чуточку напрячь мозг -- и всё встаёт на свои места. Если надо, могу объяснить, как им пользоваться.