public boolean equals(BinaryNode<T> parent,BinaryNode<T> pattern)
{
if(parent==null&&pattern==null)
return true;
if(parent==null||pattern==null)
return false;
if(parent.getdata().equals(pattern.getdata()))
return equals(parent.left,pattern.left)&&equals(parent.right,pattern.right);
return false;
}//比较两节点是否相等
//BinaryNode<T> search(BinaryTree<T> pattern)
//先根次序遍历查找首个与pattern匹配的子树
public BinaryNode<T> search(BinaryTree<T> pattern)
{
return search(pattern.root,this.root);
}
private BinaryNode<T> search(BinaryNode<T> pattern,BinaryNode<T> parent)
{
if(parent==null)
return null;
****if(parent.equals(pattern)) //这边调用equals的时候,老师说不是这样写的,那我应该怎么写啊
return parent;****
else
{
BinaryNode<T> l = search(pattern,parent.left);
if(l!=null)
return l;
BinaryNode<T> r =search(pattern,parent.right);
if(r!=null)
return r;
}
return null;
}