例如:9>9>9>null + 1>null =>
1>0>0>0>null
肯定是使用遞迴啦,不然沒辦法解決進製+1
問題,因為這時候要讓前面的節點加
1,而我們的單鏈表是永遠指向前的。
此外對於999+1=1000
,新得到的值的位數(
4位)比原來的兩個值(1個
1位,1個
3位)都多,所以我們將表頭的值設定為
0,如果多出一位來,就暫時存放到表頭。遞迴結束後,如果表頭為
1,就在新的鍊錶外再加乙個新的表頭。
//head1 length > head2, so m > n
public static int add(link head1, link head2, ref link newhead, int m, int n)
else // m == n
} 這裡假設head1
比head2
長,而且m、
n分別是
head1
和head2
的長度。
字串模擬 大整數加法
題目描述 求兩個不超過200位的非負整數的和。輸入 有兩行,每行是乙個不超過200位的非負整數,可能有多餘的前導0。輸出 一行,即相加後的結果。結果裡不能有多餘的前導0,即如果結果是342,那麼就不能輸出為0342。輸入樣例 22222222222222222222 3333333333333333...
用陣列模擬鍊錶
用陣列模擬單鏈表資料結構課本上的單鏈表演算法,在建立每個結點時都需要new乙個空間,new函式耗時長,當結點數較多時,每個結點都需要new,這樣的演算法在題中容易超時。利用陣列模擬單鏈表可以防止超時問題 826.單鏈表 實現乙個單鏈表,鍊錶初始為空,支援三種操作 1 向煉表頭插入乙個數 2 刪除第k...
有鍊錶實現長整數的加法
課程題目 設計乙個程式實現兩個任意長的整數求和運算。要求 利用雙向迴圈鍊錶實現長整數的儲存,每個節點含有乙個整型變數。輸入形式按照中國對於長整數的表示習慣,沒四位一組,組間用逗號隔開。思路 為了達到上面的要求,我使用鍊錶將長整數按照四位一組進行輸入 每組用乙個int表示就可以了 然後對鍊錶中的數字進...