Java BST中的内存和指针
在接受简单对象的二元搜索树中…为左、右和父对象创建getter和setter方法时。设置父节点时会发生什么,这是一个值得关注的问题。下面的代码 守则:Java BST中的内存和指针,java,search,binary-search-tree,Java,Search,Binary Search Tree,在接受简单对象的二元搜索树中…为左、右和父对象创建getter和setter方法时。设置父节点时会发生什么,这是一个值得关注的问题。下面的代码 守则: public void setParent(Person parent) { parent = new Person( parent.getName(), parent.getWeight()); 激发代码灵感的示例代码: public void setParent(Node parent) { this.parent = pare
public void setParent(Person parent) {
parent = new Person( parent.getName(), parent.getWeight());
激发代码灵感的示例代码:
public void setParent(Node parent) {
this.parent = parent;
}
您正在创建本质上是父对象克隆的对象。这与仅保存指向父对象的指针不同 显然,复制父对象会占用更多内存空间。更重要的是,你没有复制父母的参考资料。因此,如果您尝试遍历树,转到一个节点的父节点,然后尝试访问它的其他子节点,您将绘制一组空指针
this.parent
是对当前对象的parent
指针的引用
实际上,这并不意味着这个是一个家长。实际上,this.parent
用于区分本地parent
指针和传入参数parent
class Person{
Person parent; // <---- this is the "this.parent" attribute, and is initially undefined
public void setParent(Person parent){ // <---- the "Person parent" on this line is an incoming parameter
this.parent = parent; //<---- "this.parent" refers to the attribute, and "parent" refers to the parameter
}
}
班级人员{
Person parent;//问题有点不清楚。是哪种编程语言?您是否在询问当请求左/右/父节点时是否允许返回null?这是家庭作业吗?为什么节点需要知道其父节点是谁?这只会让跟踪变得一团糟。如果您不跟踪谁是您的父节点,您如何构建一个树???