-
Notifications
You must be signed in to change notification settings - Fork 20
/
Task2_1.hs
49 lines (37 loc) · 1.72 KB
/
Task2_1.hs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
module Task2_1 where
{-
Задание 2.1
На основе структуры бинарного дерева из лекции необходимо реализовать свою структуру данных
бинарного дерева поиска (без балансировки) и все операции, приведённые в данном файле
-}
import Todo(todo)
-- Ассоциативный массив на основе бинарного дерева поиска
-- Ключи - Integer, значения - произвольного типа
data TreeMap v = ChangeMe
-- Пустое дерево
emptyTree :: TreeMap v
emptyTree = todo
-- Содержится ли заданный ключ в дереве?
contains :: TreeMap v -> Integer -> Bool
contains t k = todo
-- Значение для заданного ключа
lookup :: Integer -> TreeMap v -> v
lookup k t = todo
-- Вставка пары (ключ, значение) в дерево
insert :: (Integer, v) -> TreeMap v -> TreeMap v
insert (k, v) t = todo
-- Удаление элемента по ключу
remove :: Integer -> TreeMap v -> TreeMap v
remove i t = todo
-- Поиск ближайшего снизу ключа относительно заданного
nearestLE :: Integer -> TreeMap v -> (Integer, v)
nearestLE i t = todo
-- Построение дерева из списка пар
treeFromList :: [(Integer, v)] -> TreeMap v
treeFromList lst = todo
-- Построение списка пар из дерева
listFromTree :: TreeMap v -> [(Integer, v)]
listFromTree t = todo
-- Поиск k-той порядковой статистики дерева
kMean :: Integer -> TreeMap v -> (Integer, v)
kMean i t = todo