采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,你在课堂上left,right,root用的是指针变量,于是我就把指针去掉,看看能行不?当我在main函数实例化BST类对象时,left那里就报错了。我不理解去掉指针为啥不行?我感觉和Java中的引用弄混了。
简单的说,Java 中的引用,就是 C++ 的指针。
当 left 和 right 都是指针的时候,他们默认可以指向 NULL;
但是,如果 left 和 right 不是指针,那么就不能是空,就需要把 left 和 right 这个 Node 构建出来。但是你的逻辑里没有指明如何构建他们,就报错了。
继续加油!:)
老师,left和right该如何构建呢?
因为这个类是模板类,我们不能保证 key 或者 value 有默认值。所以无论怎么写都无法保证构建正确。另一方面,在 Node 中构建 Node,也会形成这个构建过程的无穷递归。所以应该使用指针,这就是指针要解决的问题之一。正因为有这样或者那样的问题,所以在 Java 中,对于非基本类型,根本不提供这种默认直接构建出一个类对象的方式,Java 中所有的类对象变量都是引用(就是指针)。
登录后可查看更多问答,登录/注册
课程专为:短时间内应对面试、升职测评等艰巨任务打造
8.8k 21
5.7k 3
4.9k 5
1.4k 18