Деревья (Tree)
Подпакет Tree содержит функции создания и применения древовидных структур, именуемых деревьями. Вот эти функции:
- MakeTree [list] – создает дерево по информации, представленной в списке list;
- TreeFind [tree, x] – возвращает позицию наименьшего элемента, превосходящего х в списке list, представляющем дерево.
Действие этих функций поясняют следующие примеры:
<
<
DiscreteMath` Tree`
MakeTree[{e1, e2, e3, e4}]
{{e2,
2
), {{e1,
1
}, {}, {}}, {{e3,
3
}, {}, {{e4,
4
}, {}, {}}}}
tree
=
MakeTree[{
8.5
,
1.2
,
9.1
,
3.4
,
5
.,
7.6.6.4
}]
{{
6.4
,
4
}, {{
3.4
,
2
}, {{
1.2
,
1
}, {}, {}}, {{
5
.,
3
}, {}, {}}},
{{
8.5
,
6
}, {{
7.6
,
5
}, {}, {}}, {{
9.1
,
7
}, {},{}}}}
TreeFind[tree,
1.2
]
1
..
TreeFind[tree,
1
]
0
Для визуализации деревьев служат следующие функции:
- TreePlot [tree] – строит график дерева tree;
- ExprPlot [expr] – строит график, представляющий ехрг в виде дерева.
Примеры построения графиков деревьев представлены на рис. 11.18. Верхний график построен по данным дерева tree, определенного в приведенных выше примерах, а нижний – по данным случайного дерева.
Построение графиков деревьев по выражению ехрг с помощью функции ExprPlot демонстрирует рис. 11.19.
Рис. 11.18. Примеры визуализации деревьев
Рис. 11.19. Построение графиков деревьев с помощью функции ExprPlot