Представления
Почти все машинные представления деревьев основаны на связанных распределениях. Каждый узел состоит из поля
![](../../../../img/tex/5/d/3/5d344e294ce3d0a0acde64123118d834.png)
![](../../../../img/tex/8/3/6/8367e9043e6167140d0d219e83fe2528.png)
Такое представление полезно, если необходимо подниматься по дереву от потомков к предкам. Такая операция встречается довольно редко. Чаще требуется опуститься по дереву от предков к потомкам.
Представление дерева (или леса) с использованием указателей, ведущих от предков к потомкам, довольно сложно, поскольку узел, имея не более чем одного отца, может в то же время иметь произвольно много сыновей. Другими словами, при таком представлении узлы должны различаться по размеру, что является определенным неудобством. Один из путей обхода этой трудности состоит в том, чтобы определить соответствие между деревьями и бинарными деревьями, поскольку бинарные деревья легко представить узлами фиксированного размера.
![](image/04-05.jpg)
Рис. 4.5. Дерево из рис. 4.1, представленное с помощью узлов с полем
![](../../../../img/tex/5/d/3/5d344e294ce3d0a0acde64123118d834.png)
![](../../../../img/tex/8/3/6/8367e9043e6167140d0d219e83fe2528.png)
Каждый узел в этом случае имеет три поля:
![](../../../../img/tex/1/5/9/159ea0df16994ed2fe2eeee0f202cefe.png)
![](../../../../img/tex/5/d/3/5d344e294ce3d0a0acde64123118d834.png)
![](../../../../img/tex/0/f/9/0f961ad4acd028ad3fc42328cf1f3e6f.png)
![](image/04-06.jpg)
Рис. 4.6. Бинарное дерево и его представление с помощью узлов с тремя полями
![](../../../../img/tex/1/5/9/159ea0df16994ed2fe2eeee0f202cefe.png)
![](../../../../img/tex/5/d/3/5d344e294ce3d0a0acde64123118d834.png)
![](../../../../img/tex/0/f/9/0f961ad4acd028ad3fc42328cf1f3e6f.png)
Можно представлять деревья как бинарные, используя узлы фиксированного размера, представляя каждый узел леса в виде узла, состоящего из полей
![](../../../../img/tex/1/5/9/159ea0df16994ed2fe2eeee0f202cefe.png)
![](../../../../img/tex/5/d/3/5d344e294ce3d0a0acde64123118d834.png)
![](../../../../img/tex/0/f/9/0f961ad4acd028ad3fc42328cf1f3e6f.png)
![](../../../../img/tex/1/5/9/159ea0df16994ed2fe2eeee0f202cefe.png)
предназначается для указания самого левого сына данного узла, а поле
![](../../../../img/tex/0/f/9/0f961ad4acd028ad3fc42328cf1f3e6f.png)