我很难计算二进制搜索树中节点之间的间距以供我分配。我有GUI实现,我可以手动创建树或通过导入文本文件以及其他功能创建它。图形二进制搜索树 - 节点间距
在二叉搜索树节点类中,有X和Y坐标的getter和setter方法,我应该使用。现在,我已经开始工作了,但这是我在互联网上散播的代码混搭。例如,见this link。
的事情是,我做的不希望使用此代码,因为
- 这不是我和
- 但这并没有利用提供的getter和setter方法。
我已被告知,在为了得到间距右:
X坐标成比例,其中该节点是在中序遍历的过程中处理的顺序号。
Y坐标与节点的深度有关。
我有一个getHeight()
方法,它的工作原理和我认为是相同的深度。
我希望有人能帮助我或指引我走向正确的方向。
UPDATE
对于Y坐标?
int index = -1;
BinaryTreeNode nodes[];
int[] levels;
public void build(BinaryTreeNode node, int level)
{
if (node != null)
{
build(node.getLeftNode(), level+1);
index++;
nodes[index] = node;
levels[index] = level;
build(node.getRightNode(), level+1);
}
}
我很乐意帮忙,什么是问题?你如何获得按顺序的遍历计数? – biziclop 2011-03-03 23:42:19
问题是,如何在GUI中创建和显示二叉查找树时计算节点间距。我想我在我的问题中有一些漫不经心:) – 2011-03-04 00:13:35