Я пытаюсь ввести метод глубокой копии в классе BinarySearchTree, но мне сложно понять логику здесь. Не могли бы вы объяснить мне, как я могу это сделать?Java: глубокая копия в двоичном виде. Класс дерева
Это мой основной():
public static void main(String[] args) {
BinarySearchTree<String> bst1 = new BinarySearchTree<String>();
BinarySearchTree<String> bst2 = new BinarySearchTree<String>();
String[] words = {"hello", "world", "how", "are", "you", "doing"};
for (int i = 0; i < words.length; i++) {
bst1.add(words[i]);
}
bst1.copy(bst2);
}
И это моя копия() методы (имейте в виду, что это в классе BinarySearchTree):
public void copy(BinarySearchTree<E> bst2){
copy(this.root, bst2.root);
}
private void copy(Node<E> bst1, Node<E> bst2){
bst2.data = bst1.data;
if(bst1.left != null){
bst2.left = bst1.left;
copy(bst1.left, bst2.left);
}
if(bst1.right != null){
bst2.right = bst1.right;
copy(bst1.right, bst2.right);
}
}
Пожалуйста, помогите мне понять, логики и правильной работы кода.
Спасибо!
вы должны создавать новые узлы, если вы хотите, глубокая копия – jack3694078
[Ответ номер III делает глубокую копию бинарного дерева] (http://stackoverflow.com/questions/35820854/ai-how-to -моделью-генетическое программирование-для-линейных кораблей) –