我在Java Structures书中找到了BinaryTree类的实现,但是我不完全理解构造函数的最后一个赋值(一个语句中有三个赋值)。
protected E val; // value associated with node
protected BinaryTree<E> parent; // parent of node
protected BinaryTree<E> left, right; // children of node
public BinaryTree()
// post: constructor that generates an empty node
{
val = null;
parent = null;
left = right = this;
}
答案 0 :(得分:1)
您可以将此任务看做是两个实际的任务:
public static string ApplicationURL = @"https://CoxUR.azurewebsites.net/.auth/login/microsoftaccount/callback";
因为分配将从右到左进行评估,所以为了更好地理解right = this;
left = right;
等于left = right = this
。因此,left = (right = this)
分配的结果基本上将是right = this
指向的参考,然后将其分配到right
字段。
答案 1 :(得分:1)
就像@Grzegorz所说,这是将实例对象分配给变量left和right的快捷方式。
left = this;
right = this;
因此,您创建的BinaryTree的每个实例,都会将该实例对象分配给变量left和right。
答案 2 :(得分:0)
这是一次完成两个 分配的快捷语法。
它实际上等效于:
right = this;
left = this;