2014-02-12 59 views
0

我正在嘗試使用列表編寫我自己的BigInt實現來跟蹤大整數中的所有數字。每個類的實現都在一個單獨的文件中。使用列表來表示BigInt

struct node 
{ 
    int value; 
    node *next; 
}; 


class LIST 
{ 
    private: 
     node *head; 
    public: 
    . . . 
}; 


class BigInt 
{ 
    Private: 
     LIST numList; 
    Public: 
     BigInt addNum(BigInt& b); 
     . . . 
}; 

如何爲BigInt類實現addNum方法?我知道如何在給出頭指針的兩個列表中添加數據,但是在我的BigInt類中,我無法訪問列表類的頭指針,所以我該怎麼做?任何提示將不勝感激。

說明分配:

創建一個基於鏈表的任意精度無符號整數類BigInt有。您可以使用簡單的方式創建鏈接列表,而不用打擾 列表中的載體元素,例如,創建一個包含數字和下一個指針的結構。您可以在BigInt類本身內部管理 鏈接列表,或者您也可以使用鏈接列表 類作爲BigInt類的成員(通過聚合/合成)來管理 數字列表。 BigInt也需要保留大小(數字中有多少個小數位),以及打印寬度(默認爲數字大小)。

對於BigInt有類中,實現正常的(無符號長長整型參數),複製 和默認(設定爲0)的構造中,一種方法來分配任意的無符號長長整型 到BigInt有(構造函數可以使用其),添加兩個BigInts的方法 返回一個帶有結果的新BigInt,一個方法用於將兩個BigInts相乘 返回一個新的BigIntT並返回結果,一個方法返回BigInt中的十進制數 數字,賦值=運算符,和一個析構函數。

+0

你能添加get_head_pointer()方法類列表? – GVH

+0

不,目的是封裝列表實現,而不是簡單的公共接口,允許您添加/刪除/打印(迭代器)列表元素。 – user3303411

+0

我猜這是作業嗎?如果您認爲該作業需要您添加兩個數字而不能查看數字,恐怕您誤解了它。您需要向您的教授或我們澄清您准許以何種方式訪問​​BigInt類中numList的內容。 – GVH

回答

0

實現一個雙向鏈表可能是一個更好的主意http://en.wikipedia.org/wiki/Doubly_linked_list。當你考慮增加兩位數字時,如果總和大於9,你需要攜帶。雙向鏈接列表對此非常有用。

你的類是這樣的:

類節點{

INT VAL; Node * next; 節點*前面; 9

}