私の割り当てのためにバイナリ検索ツリーのための再帰的コピー方法を最初から作成する必要があります。このメソッドは、指定されたBinarySearchTreeオブジェクトの各項目を呼び出し元のBinarySearchTreeオブジェクトにコピーする必要があります。問題は、メソッドがvoid
でなければならないということだけです。このトピックで調べたすべてが、これを行うために異なる戻り値の型を使用しているようです。Javaバイナリ検索ツリー - 再帰ボイドコピー方法
私はこのようなものから始める方法も本当に分かりません。私が持っているのは、メソッドの空のシェルとラッパーです。プライベートメソッドのパラメータが正しいかどうかはわかりませんが、それは私の最初の推測でした。
public void copy(BinarySearchTree<E> bst2){
copy(bst2, root, bst2.root);
}
private void copy(BinarySearchTree<E> bst2, Node node1, Node node2){
}
私は何かすべての助けに感謝します。
ありがとうございます!
class Tree {
//stuff in the tree with a root node, etc...
copyTree(Node parentTreeNode, Node copyTreeNode) {
if(copyTreeNode == null)
return;
parentTreeNode = clone(copyTreeNode) //clone just copies the node's values into the node.
if(copyTreeNode.leftChild != null) {
parentTreeNode.leftChild = new Node();
copyTree(parentTreeNode.leftChild, copyTreeNode.leftChild);
}
if(copyTreeNode.rightChild != null) {
parentTreeNode.rightChild = new Node();
copyTree(parentTreeNode.rightChild, copyTreeNode.rightChild);
}
}
}
そして、あなたはちょうど2つのルートノードでこれを呼び出し、それが再帰させ、それはあなたのためのツリーを構築します:
まあ、この質問は問題の多くを説明していません。私が与えることができる唯一のヒントは、リターンを介して結果を処理できない場合、既に与えられた構造体を変更し、パラメータを介してメソッドに渡す必要があることです。 – Paul
私はあなたがこれを見たいかもしれないと思う:http://stackoverflow.com/questions/5372512/java-binary-search-tree-recursive-copy-tree?rq=1 – Tim