线程二叉树

时间:2013-04-02 16:44:08

标签: java binary-tree

大家好我应该编写ThreadedNode()类,但是我遇到了一些问题。

我理解二叉树的线程化二叉树是通过将每个空左子项设置为inorder遍历中的节点的前任和每个null右子项来获得的。 inorder遍历中节点的后继。

然而我的问题始于构造函数 //给你的根时线程化二叉树     public ThreadedNode(BinaryNode root)

我知道它收到了一个binaryNode,我必须把它变成一个线程树,但我怎么创建新的线程树?

1 个答案:

答案 0 :(得分:0)

创建线程化二叉树的常用方法是使用假头。这使得单个节点树更易于理解,构造函数更直接。

因此你的构造函数可能看起来像:

public class ThreadedNode {

    private BinaryNode head;

    public ThreadedNode(BinaryNode root) {

        head = new BinaryNode();
        root.makeThreaded();
        root.setRight(head);
        head.setRight(root);

    }
}

请记住,稍后您需要在插入,删除等中考虑这个假头。