Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 线程二叉树_Java_Binary Tree - Fatal编程技术网

Java 线程二叉树

Java 线程二叉树,java,binary-tree,Java,Binary Tree,大家好,我应该写ThreadedNode()类,但我有一些问题 我知道,二叉树的线程二叉树是通过将每一个空左子节点设置为inorder遍历中节点的前置节点和每一个空右子节点来获得的 到顺序遍历中节点的后续节点 然而,我的问题是从构造函数开始的 //当给你根时,线程二叉树 公共ThreadedNode(二进制节点根) 我知道它接收到一个binaryNode,我必须使它成为一个线程化树,但我知道如何创建新的线程化树?创建线程化二叉树的常用方法是使用假头。这使得单节点树更容易理解,构造函数更直观 因此

大家好,我应该写ThreadedNode()类,但我有一些问题

我知道,二叉树的线程二叉树是通过将每一个空左子节点设置为inorder遍历中节点的前置节点和每一个空右子节点来获得的 到顺序遍历中节点的后续节点

然而,我的问题是从构造函数开始的 //当给你根时,线程二叉树 公共ThreadedNode(二进制节点根)


我知道它接收到一个binaryNode,我必须使它成为一个线程化树,但我知道如何创建新的线程化树?

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

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

public class ThreadedNode {

    private BinaryNode head;

    public ThreadedNode(BinaryNode root) {

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

    }
}

请记住,稍后您需要在insert、delete等中解释此假头。

首先计算顺序遍历并将其存储在某个位置,然后遍历树并检查空值。如果为空,请从存储列表中选择前置或后续