一个类Nat通过指定n-1个数的前置字段表示一个Number(n),如果pre为null,则表示该数为零。两个链接列表的总和
public class Nat {
private final Nat pre;
public Nat (Nat pre) { this.pre = pre; }
public Nat() { this(null); }
public boolean isZero() { return pre == null; }
public Nat succ() { return new Nat(this); }
…
}
,我要补充这两个数相加的方法,我不明白这是如何想返回一个纳特表示的“本”之等!
public Nat plus (Nat other) {
if (other.isZero())
return this;
return succ().plus(other.pre);
}
我认为它会创建一个“纳茨”,它指向的这个(前)所有的时间第二纳特.. 可以在任何一个可以帮助我吗?
什么'succ'该怎么办?你在哪里存储“Nat”代表的“数字”? – Fildor 2014-09-06 07:38:46
@Fildor {return new Nat(this); },正如我所说的,通过有一个pre字段(也是Nat)指向n-1号码(它非常喜欢LinkedList行为,只是想象这代表了一个数字,通过计算你有多少链接!) – 2014-09-06 07:40:00
好吧,那么它应该返回后继...然后在你的“加号”方法中,为什么你使用'succ'和'other.pre' - 对我没有意义。 – Fildor 2014-09-06 07:43:15