一顾鸭
2019-11-29 10:17
采纳率: 100%
浏览 186
已采纳

数据结构JAVA equals方法的调用

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;
        }
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • loreshare 2019-11-29 16:52
    已采纳

    equals(BinaryNode parent,BinaryNode pattern)
    parent.equals(pattern)
    靓仔,按照你这粘贴的来看,这就不是一个方法,问题描述写错了,还是就是这样;
    如果是这样,你编译器不报错吗。

    已采纳该答案
    打赏 评论
  • BlueSpringTT 2019-11-29 11:52

    首先了解一下 equals 是怎么实现的:Object类(Java的“对象世界”的根)中实现的equals方法,就是把“特征值”设定为“对象引用”来进行判断等价性的,因此可以得知,Object类中equals方法只是简简单单地返回this引用和被判断的obj的引用的“==运算”的值。 老师不让你那么写,你这个判断是可以判断他自己是不是他自己。不能判断2个BinaryTree是不是相等。
    然后就是语法问题了
    if(){
    };
    else{} ;

    打赏 评论

相关推荐 更多相似问题