大家好,我应该写ThreadedNode()类,但是我有一些问题。
我了解到,二叉树的线程二叉树是通过在无序遍历中将每个空左子节点设置为节点的前身,而将每个空右子子设置为无序遍历中节点的后继。
但是,我的问题是,当您获得根公共ThreadedNode( BinaryNode根)时,首先是构造函数//线程--二叉树。
我知道它接收到一个binaryNode,我必须使它成为一个线程树,但是我如何创建新的线程树呢?
发布于 2013-04-02 17:11:52
一种常见的创建线程二叉树的方法是假头。这使得单节点树更容易理解,构造函数更直观。
因此,您的构造函数可能看起来如下:
public class ThreadedNode {
private BinaryNode head;
public ThreadedNode(BinaryNode root) {
head = new BinaryNode();
root.makeThreaded();
root.setRight(head);
head.setRight(root);
}
}请记住,稍后您需要说明这个假头插入,删除等。
https://stackoverflow.com/questions/15769641
复制相似问题