就是这段代码我想把C的节点树插入到B的节点树中去,但是运行结果是空,怎么修改才能变成我要的C啊
//题目: TreeNode<T> insert(TreeNode<T> p, Tree<T> tree) //插入tree树(深拷贝)作为p的最后一棵子树
import java.util.Stack;
public class TreeNode<T> {
private T data;//节点数据
private TreeNode<T> parent;//节点的父节点
private Stack<TreeNode<T>> children;//节点的子节点栈
public TreeNode(T data) { //初始化
this.data = data;
this.parent = null;
this.children = new Stack<>();
}
//用于在指定的父节点p下插入一个子树tree
public void insert(TreeNode<T> p, Tree<T> tree) {
TreeNode<T> copiedTree = tree.deepCopy();//对tree进行深拷贝
p.getChildren().push(copiedTree);//将p的子树压入父节点的子节点栈中
copiedTree.setParent(p);//设置拷贝后的子树的父节点为p
}
// Getters and setters
public T getData() {
return data;
}//获取节点数据
public void setData(T data) {
this.data = data;//接受类型为T的参数
}
public TreeNode<T> getParent() {
return parent;//获取节点的父节点
}
public void setParent(TreeNode<T> parent) {
this.parent = parent;//设置节点的父节点
}
public Stack<TreeNode<T>> getChildren() {
return children;//获取节点的子节点栈
}
public void setChildren(Stack<TreeNode<T>> children) {
this.children = children;//设置节点的子节点栈
}
public static void main(String[] args) {
//创建树节点
TreeNode<String> nodeA=new TreeNode<>("A");
TreeNode<String> nodeB=new TreeNode<>("B");
nodeB.setChildren(new Stack<>());
TreeNode<String> nodeC=new TreeNode<>("C");
//创建树
Tree<String>tree=new Tree<>(nodeB);
//在节点B下插入节点C的完整树结构
nodeB.insert(nodeC, tree);
//输出节点B的子节点(包含插入的节点C的完整树结构)
for (TreeNode<String>child:nodeB.getChildren()) {
System.out.println(child.getData());
}
}
}
