一個類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