按级别打印 BTree [英] Print BTree by level
问题描述
我正在尝试创建一个为 BTree 设置动画的 Java 小程序.我有创建树的代码,但现在我正在尝试显示它.我认为最简单的方法是按级别打印,但我不知道如何.下面的代码是我的节点的构造函数.另外,如果有人对展示我的树有更好的建议,我将不胜感激.
I am trying to create a Java applet that animates a BTree. I have code to create the tree but now I am trying to display it. I thought the easiest way would be to print by level but I can't figure out how. The below code is the constructor for my nodes. Also, if anyone has a better suggestion for displaying my tree I would appreciate it.
/***********************************************************************
* Class BTNode
* The BTNode is nothing else than a Node in the BTree. This nodes can be
* greater or smaller it depends on the users order.
**/
class BTNode {
int order=0;
int nKey=0; // number of keys stored in node
KeyNode kArray[]; // array where keys are stored
BTNode btnArray[]; // array where references to the next BTNodes is stored
boolean isLeaf; // is the btnode a leaf
BTNode parent; // link to the parent node
/**
* BTNode(int order, BTNode parent);
* Constructor, creats a empty node with the given order and parent
**/
BTNode(int order, BTNode parent) {
this.order = order;
this.parent = parent;
kArray = new KeyNode[2 * order - 1];
btnArray = new BTNode[2 * order];
isLeaf = true;
}
推荐答案
您想要执行树的层序遍历.如果空间不是限制因素,我建议建立一个您希望接下来访问的节点队列(在访问时将它们的子节点添加到队列的末尾).
You want to perform a level-order traversal of the tree. If space is not a limiting factor, I'd suggest building a queue of nodes that you wish to visit next (adding their child nodes onto the end of the queue upon visit).
这篇关于按级别打印 BTree的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!