игра брюс 2048
Главная / Программирование / Функциональное программирование / Тест 13

Функциональное программирование - тест 13

Упражнение 1:
Номер 1
 Как связаны двоичные деревья и деревья общего вида?
 

Ответ:

 (1) дерево общего вида является частным случаем двоичного дерева 

 (2) двоичное дерево является частным случаем дерева общего вида 

 (3) любое дерево общего вида однозначно представимо в виде двоичного дерева 


Номер 2
 Как правильно описать дерево общего вида на F#?
 

Ответ:

 (1) type 'T tree = Leaf of 'T | Node of 'T*('T tree list) 

 (2) type 'T tree = Leaf of 'T | Node of 'T*T' 

 (3) type 'T tree = Nil | Leaf of 'T | Node of 'T -> ('T tree list) 

 (4) type 'T tree = Nil | Leaf of 'T | Node of 'T*T’*(’T tree) 


Номер 3
 Как правильно описать двоичное дерево на F#?
 

Ответ:

 (1) type 'T btree = Leaf of 'T | Node of 'T*('T btree list) 

 (2) type 't btree = Node of 't * 't btree * 't btree | Nil 

 (3) type 't btree = Node of 't * 't btree * 't btree 

 (4) type 't btree = Leaf of 't | Node of 't btree 


Упражнение 2:
Номер 1
 В каком порядка обходятся поддеревья в инфиксном порядке обхода?
 

Ответ:

 (1) корень, левое поддерево, правое поддерево 

 (2) левое поддерево, корень, правое поддерево 

 (3) левое поддерево, правое поддерево, корень 

 (4) корень, правое поддерево, левое поддерево 


Номер 2
 В каком порядка обходятся поддеревья в префиксном порядке обхода?
 

Ответ:

 (1) корень, левое поддерево, правое поддерево 

 (2) левое поддерево, корень, правое поддерево 

 (3) левое поддерево, правое поддерево, корень 

 (4) корень, правое поддерево, левое поддерево 


Номер 3
 В каком порядка обходятся поддеревья в постфиксном порядке обхода?
 

Ответ:

 (1) корень, левое поддерево, правое поддерево 

 (2) левое поддерево, корень, правое поддерево 

 (3) левое поддерево, правое поддерево, корень 

 (4) корень, правое поддерево, левое поддерево 


Упражнение 3:
Номер 1
 Что такое дерево поиска?
 

Ответ:

 (1) одноуровневое дерево общего вида, в котором все узлы упорядочены 

 (2) дерево общего вида, в котором все узлы упорядочены 

 (3) двоичное дерево, в котором все листья упорядочены 

 (4) двоичное дерево, в котором для каждого узла все элементы левого поддерева меньше, а правого поддерева – больше текущено. 


Номер 2
 Какова сложность поиска в дереве поиска?
 

Ответ:

 (1) O(log n) 

 (2) O(n) 

 (3) между O(log n) и O(n), в зависимости от сбалансированности дерева 

 (4) между O(n) и O(n2), в зависимости от количества элементов дерева 


Номер 3
 Как обычно представляется дерево арифметического выражения?
 

Ответ:

 (1) деревом общего вида, в котором число поддеревьев соответствует количеству аргументов операции 

 (2) деревом общего вида, в котором число поддеревьев соответствует количеству аргументов для последовательной цепочки одинаковых операций  

 (3) двоичным деревом 


Упражнение 4:
Номер 1
 Что такое продолжение (continuation)?
 

Ответ:

 (1) оператор, указывающий, откуда продолжить вычисления 

 (2) оператор, помогающий компилятору распознать хвостовую рекурсию 

 (3) передаваемая в качестве параметра функция, которую необходимо вызвать по завершении выполнения текущей функции 


Номер 2
 Как можно свести нелинейно-рекурсивную функцию к хвостовой рекурсии?
 

Ответ:

 (1) используя стек для хранения оставшихся заданий на обработку 

 (2) используя дерево для представления цепочки вычислений 

 (3) используя продолжения для разворачивания рекурсии в цепочку функций 




Главная / Программирование / Функциональное программирование / Тест 13